Glide 在通过 uri 加载时显示黑色图像

Glide has shown black image when loading by uri

当我想使用Glide加载图片的uri时,我的图片显示为黑色。

URI:

content://com.whatsapp.provider.media/item/4

 GlideApp.with(context).load(uri)
                    .diskCacheStrategy(DiskCacheStrategy.NONE)
                    .transition(withCrossFade())
                    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                    .into(photoView);

我已将 uri 转换为路径,但这不起作用。我认为 Glide 无法从 Whatsapp uri 转换为路径。

尝试使用 EXTERNAL_CONTENT_URI 查询您的图片,

Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection,
                    MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " =?", new String[]{album}, MediaStore.Images.Media.DATE_ADDED); 

因此,您将获得文件 url,而不是像这样的内容 uri,

/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20200127-WA0019.jpg

然后你可以试试这个文件 url 像这样用 Glide 加载。

Uri uri = Uri.fromFile(new File(path));
GlideApp.with(context).load(uri)
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        .transition(withCrossFade())
        .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
        .into(photoView);