我(初学者机器人)试图获得用户从图库中选择的图像的真实路径(例如:image_name.jpg等)。
以下是代码段:
if (requestCode == SELECT_FILE) {
Uri selectedImage = data.getData();
Bitmap bitmapImage;
try {
bitmapImage =decodeBitmap(selectedImage );
photoImage = (ImageView) findViewById(R.id.photoImage);
photoImage.setImageBitmap(bitmapImage);
photoName = (TextView) findViewById(R.id.designPhoto);
File thePath = new File(getRealPathFromURI(selectedImage));
photoName.setText(getRealPathFromURI(selectedImage));
} catch (Exception e) {
e.printStackTrace();
}
}
private String getRealPathFromURI(Uri contentURI) {
String thePath = "no-path-found";
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(contentURI, filePathColumn, null, null, null);
if(cursor.moveToFirst()){
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
thePath = cursor.getString(columnIndex);
}
cursor.close();
return thePath;
}
但我在photoName
textView中没有得到任何内容,也尝试了很多代码和指南,但没有成功。
但是当我用
尝试时photoName.setText(selectedImage.getPath());
我正在
/document/image:n (where n=any numbers) ex:/document/image:147
但我想要一个正确的文件名或路径ex:image_name.jpg
或/path/image_name.png
从最近3个小时开始尝试,如果有人能帮助我的话会很棒。谦虚地提前谢谢。
答案 0 :(得分:1)
我使用
工作了private String getRealPathFromURI(Uri contentURI) {
String thePath = "no-path-found";
String[] filePathColumn = {MediaStore.Images.Media.DISPLAY_NAME};
Cursor cursor = getContentResolver().query(contentURI, filePathColumn, null, null, null);
if(cursor.moveToFirst()){
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
thePath = cursor.getString(columnIndex);
}
cursor.close();
return thePath;
}
更新和工作代码可能会帮助其他人:
{{1}}