BitmapUtils从具有空间的foldername上抛出FileNotFoundException,同时从uri获取位图

Ask*_*skQ 5 android filenotfoundexception android-bitmap

在Android 5.1 上具有空间的文件夹获取FileNotFoundException .否则它的工作正常.我尝试用替换空间%20但是没有工作.还尝试过URLEncoder,但它失败了.

我正在使用contentresolver获取图像路径:

absolutePathOfImage=cursor.getString(column_index_data);
Run Code Online (Sandbox Code Playgroud)

这是(/ storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20181025-WA0001.jpg)

乌里:

file:///storage/emulated/0/WhatsApp/Media/WhatsApp%20Images/IMG-20181024-WA0022.jpg
Run Code Online (Sandbox Code Playgroud)

我想得到图像的位图,但是当从Uri获取位图时,BitmapUtils抛出异常:(注意:即使是Glide,毕加索也无法创建图像的缩略图)

        BitmapUtils.decodeSampledBitmap(mContext, mUri, mWidth, mHeight);
Run Code Online (Sandbox Code Playgroud)

java.lang.RuntimeException:无法加载采样位图:file:///storage/emulated/0/WhatsApp/Media/WhatsApp%20Images/IMG-20181024-WA0022.jpg/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20181024-WA0022.jpg:打开失败:ENOENT(没有这样的文件或目录)

我在Android 5.1上遇到异常.在Android 8.0上运行相同的代码

从那以后就被困了2天.任何变通方法或解决方案?

Mar*_*ler 2

空格不应被编码,就像 URL 一样:

file:///storage/emulated/0/WhatsApp/Media/WhatsApp%20Images/IMG-20181024-WA0022.jpg
Run Code Online (Sandbox Code Playgroud)

但应该使用 转义\,就像 Linux 路径一样:

file:///storage/emulated/0/WhatsApp/Media/WhatsApp\ Images/IMG-20181024-WA0022.jpg
Run Code Online (Sandbox Code Playgroud)

还要确保基本路径file:///storage/emulated/0正确。