4

您好,我使用Universal Image Loader从设备加载图像,现在它可以工作了,但是如果文件路径包含“空格字符”,则图像不会显示,并且日志记录显示存在FileNotFoundException.

我尝试使用 java io 在线程中打开文件,它打开并且我可以读取它。

文件名:

/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20121014-WA0001.jp 

当抛出异常时,
它用 a 替换空格,%20这就是抛出异常的原因。

我的代码:

ImageLoader.getInstance().displayImage(
                    Uri.fromFile(
                            new File(cursor.getString(cursor.getColumnIndex(

                            MediaStore.Images.Media.DATA)))).toString(),
                    holder.mImage);

仅当路径中没有空格时才有效,

任何帮助

4

2 回答 2

12

不幸的是,另一个答案不太清楚,fileName经过一些额外的挖掘后,我设法将本地图像与图像加载器一起使用:

示例代码:

string imgPath = "/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20121014-WA0001.jpg";

String decodedImgUri = Uri.fromFile(new File(imgPath)).toString();
ImageLoader.getInstance().displayImage(decodedImgUri, imageView);

Android 使用路径中的空格和通用图像加载器加载本地图像也有助于解决此问题。

于 2015-10-30T19:39:09.940 回答
5

我有同样的问题,我找到了这个解决方案。

String uri = fileName.getUri().toString();
String decodedUri = Uri.decode(uri);

ImageLoader.getInstance().displayImage(decodedUri, imageView);
于 2013-11-10T07:33:01.537 回答