android通過Uri.getPath()獲取真實路徑我正試圖從畫廊獲取圖像。Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(Intent.createChooser(intent, "Select picture"), resultCode );從這個活動返回后,我有一個包含Uri的數據??雌饋硐瘢篶ontent://media/external/images/1如何將此路徑轉換為真實路徑(就像' /sdcard/image.png')?謝謝
3 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
你真的有必要獲得物理路徑嗎?
例如,ImageView.setImageURI()
并且ContentResolver.openInputStream()
允許你訪問一個文件的內容,不知道它的真實路徑。

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
這就是我做的:
Uri selectedImageURI = data.getData();imageFile = new File(getRealPathFromURI(selectedImageURI));
和:
private String getRealPathFromURI(Uri contentURI) { String result; Cursor cursor = getContentResolver().query(contentURI, null, null, null, null); if (cursor == null) { // Source is Dropbox or other similar local file path result = contentURI.getPath(); } else { cursor.moveToFirst(); int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); result = cursor.getString(idx); cursor.close(); } return result;}
注意:managedQuery()
方法已棄用,因此我不使用它。
最后編輯:改進。我們應該關閉光標!!
添加回答
舉報
0/150
提交
取消