main.xml

android照相简单案例
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.mytest.testcamera.MainActivity" >    <SurfaceView        android:id="@+id/sf_camera"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1" />    <Button        android:id="@+id/btn_camera"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="照相" /></LinearLayout>
View Code

AndroidMainfest.xml

android照相简单案例
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.mytest.testcamera"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="14"        android:targetSdkVersion="21" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/app_name"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Black.NoTitleBar" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".PictureActivity" >        </activity>    </application>    <uses-permission android:name="android.permission.CAMERA" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /></manifest>
View Code

MainActivity

android照相简单案例
package com.mytest.testcamera;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.content.Intent;import android.hardware.Camera;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.widget.Button;import android.widget.Toast;import android.view.SurfaceView;import android.view.View;public class MainActivity extends Activity {    private SurfaceView cameraPreview;    private Button btnCamera;    private Camera camera = null;    private Callback camerPreCallBack = new Callback() {        @Override        public void surfaceCreated(SurfaceHolder holder) {            // 加载照相预览            startPreview();        }        @Override        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {        }        @Override        public void surfaceDestroyed(SurfaceHolder holder) {            // 停止照相预览            stopPreview();        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cameraPreview = (SurfaceView) findViewById(R.id.sf_camera);        cameraPreview.getHolder().addCallback(camerPreCallBack);        btnCamera = (Button) findViewById(R.id.btn_camera);        btnCamera.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 拍照                camera.takePicture(null, null, new Camera.PictureCallback() {                    @Override                    public void onPictureTaken(byte[] data, Camera camera) {                        // 把图片数据保存到临时目录                        String path = savePictureFile(data);                        Log.v("info", "image temp path:" + path);                        if (path != null) {                            Intent intent = new Intent(MainActivity.this, PictureActivity.class);                            intent.putExtra("imgPath", path);                            startActivity(intent);                        } else {                            Toast.makeText(MainActivity.this, "保存照片失败", Toast.LENGTH_SHORT).show();                        }                    }                });            }        });    }    /**     * 保存照片到临时目录     *      * @param bytes     * @return     */    private String savePictureFile(byte[] bytes) {        try {            File file = File.createTempFile("camera", "img");            FileOutputStream fos = new FileOutputStream(file);            fos.write(bytes);            fos.flush();            fos.close();            return file.getAbsolutePath();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }    private void startPreview() {        camera = Camera.open();        try {            camera.setPreviewDisplay(cameraPreview.getHolder());            camera.startPreview();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    private void stopPreview() {        camera.stopPreview();        camera.release();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}
View Code

预览PictureActivity.java

android照相简单案例
package com.mytest.testcamera;import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.widget.ImageView;public class PictureActivity extends Activity {    private ImageView imageView;            @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);                imageView = new ImageView(this);        setContentView(imageView);                String path = getIntent().getStringExtra("imgPath");        if(path!=null){            imageView.setImageURI(Uri.parse(path));        }        }}
View Code

更多相关文章

  1. Android Studio 单刷《第一行代码》系列目录
  2. 我的Android相关文章目录
  3. Android Studio目录结构
  4. 登录案例_android
  5. Android 目录
  6. Android Service总结01 目录
  7. Android检测SD卡是否可用,Android获取磁盘可用空间,Android获取磁
  8. Android工具箱之文件目录
  9. 【Android】 基于XMPP Smack框架 开发QQ教程:目录

随机推荐

  1. Android(安卓)Sensor Framework(狠详)
  2. android 自定义log打印
  3. 在Android上使用微信开源数据库框架WCDB
  4. 安卓apk签名
  5. 【Android(安卓)Developers Training】 1
  6. CTS运行注意事项(不断更新中...)
  7. ejoy2d源代码阅读之一(启动流程)
  8. Android(安卓)dispatchTouchEvent介绍
  9. Android学习中遇到的坑
  10. 解决 类似 sdk\build-tools\23.0.1\aa