起动一个照相程序并保存照片到制定目录以及屏幕旋转时参数的记录

启动一个照相程序并保存照片到制定目录以及屏幕旋转时参数的记录

_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();
    	}
    }

 前一个是指屏幕旋转前保存 后一个指屏幕旋转完成 保存