我已经从Google云端硬盘存储空间下载了图片。我想使用Gallery Intent在我的应用程序中将此图像设置为imageview。
在onActivityResult中收到的图像的Uri:content://com.google.android.apps.docs.storage/document/acc%3D2%3Bdoc%3Dencoded%3DWe%2BdXDcNgTeulVk1Ntu3YfRYkm9wk7uTdTG6LFVyck1BxY4g7xAxy>
我正在使用此代码从url获取真实路径:
if ("com.google.android.apps.docs.storage".equals(uri
.getAuthority())) {
//content://com.google.android.apps.docs.storage/document/acc%3D2%3Bdoc%3Dencoded%3DWe%2BdXDcNbYeulVk1Ntu3YfRYkm9wk7uTdTG6LE6yck1BxY4g7xAxyPAgtMtz4A%3D%3D
final String docId = DocumentsContract.getDocumentId(uri);
final String id = docId.split(";")[1];
final String[] selectionArgs = new String[]{id};
//String[] column = {MediaStore.Images.Media.DATA};
// where id is equal to
String selection = MediaStore.Images.Media._ID + "=?";
Uri contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
//..
Cursor cursor = null;
String filePath = null;
try {
String[] column = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(contentUri,
column, selection, selectionArgs, null);
if (cursor != null && cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(column[0]);
filePath = cursor.getString(columnIndex);
}
} finally {
if (cursor != null)
cursor.close();
return filePath;
}
}
.....
但是我得到了NULL游标。因此,文件路径始终为空/空。
任何人,请问我在做什么错?
答案 0 :(得分:0)
我正在使用此代码从url获取真实路径
删除它。
任何人,请问我在做什么错?
您正在使用该代码。
将Uri
传递到您喜欢的图像加载库(Glide,毕加索等)。只需几行代码,它将为您完成所有工作,填充ImageView
。
或者,如果您坚持要自己做:
ContentResolver
和openInputStream()
在InputStream
所标识的内容上获得Uri
BitmapFactory.decodeStream()
根据该Bitmap
获取一个InputStream
Bitmap
放入您的ImageView
中,