如果我有以“ content://com.google.android.apps”开头的uri,如何从中获取位图

问题描述

我从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");
        }
    }
}