从图库中获取图像时出错
Error While fetch image from gallary
我编写了如下代码来获取图像:
private void openFileManager() {
Intent i = new Intent(Intent.ACTION_PICK);
i.setType("image/*");
startActivityForResult(i, REQUEST_CODE_GALLERY);
}
并在 onActivityResult 方法中获取图像,如下所示:
Uri uri = data.getData();
InputStream is = getContentResolver().openInputStream(uri);
Bitmap b = BitmapFactory.decodeStream(is);
iv1.setImageBitmap(b);
但出现错误:
08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.647 20795-20795/com.test W/System.err: java.io.FileNotFoundException: No such file or directory
它指向该行:InputStream is = getContentResolver().openInputStream(uri);
我在 marshmallow 中遇到了这个错误,但在 Kitkat 中没有。我觉得Google Photo App只有return ActivityResult中有这种类型的URI。
版本:当内部 Intent 调用 Google 照片应用程序进行图像选择时,我才知道这是错误。 Tnx @。但是如何解决这个问题。任何处理来自 Google Photo 的 URI 和 bifercate URI 以直接获取图片的代码。因为我必须在 Glide Library 函数中传递它才能在 ImageView 中呈现。
获取google时出现异常photos.you可以使用这个class获取。
您需要将此 2 类 FileUtils and LocalStorageProvider 复制到您的项目中,您可以使用此方法在 onActiyityResult 中获取文件
File mPhotoFile = FileUtils.getFile(this, data.getData());
它可以在所有 OS 版本和天气中使用 document 目录或 媒体目录.
尝试使用此代码在 android 5,6
中获取图像
private Bitmap getBitmapFromUri(Uri uri) throws IOException {
ParcelFileDescriptor parcelFileDescriptor =
getLocalContext().getContentResolver().openFileDescriptor(uri, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
return image;
}
getLocalContext() 是您的本地上下文。
我编写了如下代码来获取图像:
private void openFileManager() {
Intent i = new Intent(Intent.ACTION_PICK);
i.setType("image/*");
startActivityForResult(i, REQUEST_CODE_GALLERY);
}
并在 onActivityResult 方法中获取图像,如下所示:
Uri uri = data.getData();
InputStream is = getContentResolver().openInputStream(uri);
Bitmap b = BitmapFactory.decodeStream(is);
iv1.setImageBitmap(b);
但出现错误:
08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.630 20795-20795/com.test E/image path: content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F10750/ORIGINAL/NONE/1807946268
08-04 17:44:36.647 20795-20795/com.test W/System.err: java.io.FileNotFoundException: No such file or directory
它指向该行:InputStream is = getContentResolver().openInputStream(uri);
我在 marshmallow 中遇到了这个错误,但在 Kitkat 中没有。我觉得Google Photo App只有return ActivityResult中有这种类型的URI。
版本:当内部 Intent 调用 Google 照片应用程序进行图像选择时,我才知道这是错误。 Tnx @
获取google时出现异常photos.you可以使用这个class获取。
您需要将此 2 类 FileUtils and LocalStorageProvider 复制到您的项目中,您可以使用此方法在 onActiyityResult 中获取文件
File mPhotoFile = FileUtils.getFile(this, data.getData());
它可以在所有 OS 版本和天气中使用 document 目录或 媒体目录.
尝试使用此代码在 android 5,6
中获取图像private Bitmap getBitmapFromUri(Uri uri) throws IOException {
ParcelFileDescriptor parcelFileDescriptor =
getLocalContext().getContentResolver().openFileDescriptor(uri, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
return image;
}
getLocalContext() 是您的本地上下文。