在ImageView中保存用户选择的图库图像

时间:2015-03-15 20:01:28

标签: android image

此活动的目标是允许用户输入信息并从其库中选择图像以在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设置为他们选择的图像。

这样做的最佳方式是什么?

2 个答案:

答案 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);
    }