此活动的目标是允许用户输入信息并从其库中选择图像以在ImageView中显示。
以下是我选择图片的代码。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SELECTED_PICTURE:
if(resultCode==RESULT_OK){
Uri uri = data.getData();
String[]projection={MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
Drawable d = new BitmapDrawable(yourSelectedImage);
iv.setBackground(d);
}
break;
}
}
这很好用,但是一旦用户离开,照片就会消失。我需要能够保存图像路径,以便我可以在创建时调用它,自动将ImageView设置为他们选择的图像。
这样做的最佳方式是什么?
答案 0 :(得分:0)
检查此方法:
public void onSaveInstanceState(Bundle savedInstanceState)
和
public void onRestoreInstanceState(Bundle savedInstanceState)
他们让你在onDestroy()之前保存你的状态,然后在onCreate()之后恢复它。
答案 1 :(得分:0)
使用此方法:
public void openGallery() {
Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
}
在onActivityResult中添加此块:
if(requestCode == PICK_IMAGE){
imageUri=data.getData();
imageView.setImageURI(imageUri);
//iv.setRotation(90);
}