起动一个照相程序并保存照片到制定目录以及屏幕旋转时参数的记录
启动一个照相程序并保存照片到制定目录以及屏幕旋转时参数的记录
_path = Environment.getExternalStorageDirectory() + "/images/make_machine_example.jpg";
protected void startCameraActivity() { File file = new File( _path ); Uri outputFileUri = Uri.fromFile( file ); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE ); intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri ); startActivityForResult( intent, 0 ); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.i( "MakeMachine", "resultCode: " + resultCode ); switch( resultCode ) { case 0: Log.i( "MakeMachine", "User cancelled" ); break; case -1: onPhotoTaken(); break; } }
0和1 是指当你按下开始拍照或者取消拍照时的响应代码
protected void onPhotoTaken() { _taken = true; BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; Bitmap bitmap = BitmapFactory.decodeFile( _path, options ); _image.setImageBitmap(bitmap); }
@Override protected void onSaveInstanceState( Bundle outState ) { outState.putBoolean( PhotoCaptureExample.PHOTO_TAKEN, _taken ); } @Override protected void onRestoreInstanceState( Bundle savedInstanceState){ Log.i( "MakeMachine", "onRestoreInstanceState()"); if( savedInstanceState.getBoolean( PhotoCaptureExample.PHOTO_TAKEN ) ) { onPhotoTaken(); } }
前一个是指屏幕旋转前保存 后一个指屏幕旋转完成 保存