问题描述
我从android设备文件中进行选择,我得到了以“ content://com.google.android.app”开头的uri,由于某种原因,我无法将其加载到位图中,
const persons = [
{
id: 1,name: 'Binod'
},{
id: 2,name: 'John'
},{
id: 3,name: 'Harry'
}
];
const [,{name}] = persons;
console.log(name); // "Harry"
有什么想法吗?
解决方法
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
switch (requestCode) {
case PICKFILE_RESULT_CODE:
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
getBitmapFromUri(this,uri);
imageView.setImageBitmap(imgBitmap);
}
break;
}
}
public static Bitmap getBitmapFromUri(Context context,Uri uri) {
ParcelFileDescriptor parcelFileDescriptor = null;
try {
parcelFileDescriptor =
context.getContentResolver().openFileDescriptor(uri,"r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
return image;
} catch (Exception e) {
Log.e(TAG,"Failed to load image.",e);
return null;
} finally {
try {
if (parcelFileDescriptor != null) {
parcelFileDescriptor.close();
}
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG,"Error closing ParcelFile Descriptor");
}
}
}