拍照、偷拍

来源:互联网 发布:ubuntu登录密码的限制 编辑:程序博客网 时间:2024/03/29 17:10
public class MainActivity extends Activity {    private ImageView iv;    private File file ;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv = (ImageView) findViewById(R.id.iv);    }    public void click(View view) {        Intent intent = new Intent();        // 指定拍照的意图。        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//指定 录像的意图        intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);        file =  new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); // 指定保存文件的路径        startActivityForResult(intent, 100);                                                    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if(requestCode==100){            iv.setImageURI(Uri.fromFile(file));        }        super.onActivityResult(requestCode, resultCode, data);    }}<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
public class MainActivity extends Activity {    private ImageView iv;    //照相机    private Camera mCamera;    //照相机预览类    private CameraPreview mPreview;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv = (ImageView) findViewById(R.id.iv);        //照相机实例        mCamera = getCameraInstance();        //照相预览的画面        mPreview = new CameraPreview(this, mCamera);        FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);        preview.addView(mPreview);    }    //拍摄照片    public void click(View view){        mCamera.autoFocus(new AutoFocusCallback() {            //对焦完成之后 拍照             @Override            public void onAutoFocus(boolean success, Camera camera) {                //拍照功能                mCamera.takePicture(null, null, new PictureCallback() {                    @Override                    public void onPictureTaken(byte[] data, Camera camera) {                        try {                            File file = new File(Environment.getExternalStorageDirectory(),SystemClock.uptimeMillis()+".jpg");                            FileOutputStream fos = new FileOutputStream(file);                            fos.write(data);//data:拍照的图片                            fos.close();                            Toast.makeText(getApplicationContext(), "成功", 0).show();                            mCamera.startPreview();                        } catch (Exception e) {                            e.printStackTrace();                        }                    }                });            }        });    }    /** 获取一个照相机实例 */    public static Camera getCameraInstance(){        Camera c = null;        try {            c = Camera.open(); // attempt to get a Camera instance        }        catch (Exception e){            // Camera is not available (in use or does not exist)        }        return c; // returns null if camera is unavailable    }    @Override    protected void onDestroy() {        mCamera.stopPreview();        mCamera.release();        mCamera = null;        super.onDestroy();    }}
0 0