在我的应用程序中,我为用户提供了一个选项,可以从图库中选择图片或从相机中单击它,使用内置的相机和图库功能并为其设置意图。不知何故,在方向更改时,我丢失了从这些意图传递的数据。查找后我才知道方向变化会导致活动重绘和重新初始化。现在我想使用 Bundle 和 OnConfigurationChange 并保存我的附加功能。我对如何实现它一无所知,详细的答案可能会有所帮助。下面是我的代码:
if(i==0){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1337 && resultCode== Activity.RESULT_OK) {
Bundle extras = data.getExtras();
if (extras != null){
TitmapFactory.Options options = new TitmapFactory.Options();
options.inSampleSize = 1;
options.inPurgeable = true;
options.inInputShareable = true;
thumbnail = (Titmap) data.getExtras().get("data");
// imgview.setImageTitmap(thumbnail);
image(thumbnail);
} else {
Toast.makeText(CreateProfile.this, "Picture NOt taken", Toast.LENGTH_LONG).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data){
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
thumbnail = (BitmapFactory.decodeFile(picturePath));
image(thumbnail);
}