您openGalleryForImageSelection()
方法更改爲:
public void openGalleryForImageSelection(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), IMAGE_FROM_GALLERY);
}
然後你會進去onActivityResult()
意圖的數據,然後通過調用getPathForImage()
這樣得到它的真實路徑:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
realPath = getPathForImage(ProfileActivity.this, data.getData());
}
}
}
public static String getPathForImage(Context context, Uri uri)
{
String result = null;
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(uri, proj, null, null, null);
if (cursor == null) {
result = uri.getPath();
} else {
cursor.moveToFirst();
int column_index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
result = cursor.getString(column_index);
cursor.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
if (cursor != null) {
cursor.close();
}
}
return result;
}
並使用realPath
你得到了onActivityResult
轉換成Bitmap
並加載那個Bitmap
進入你的ImageView
這是做到這一點的方法。希望它能幫助你
你是否在'onActivityResult()'方法內正確獲取圖像路徑? –
謝謝你的迴應。我正確地獲取圖像路徑。任何圖像第一次開放。但如果我再次嘗試再次選擇相同的圖片,它不會打開!即使我試圖從外面打開相同的圖像,它會給出一個空白的圖像! –