2013-04-06 20 views
4

您好我使用Universal Image Loader從設備加載圖像,現在它可以工作,但是如果文件路徑包含「空格字符」,則圖像不會顯示,並且日誌記錄顯示存在FileNotFoundException用於外部存儲文件的通用圖像加載程序

我試圖用java io打開一個線程中的文件,它打開並且我可以讀取它。

文件名:

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

時拋出異常
它替換爲%20的空間,這是什麼讓拋出的異常。

我的代碼:

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

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

只能當路徑沒有空格,

任何幫助

+0

您是否嘗試將空格符號替換爲'%20'? – 2013-04-06 11:23:39

+0

看到我的編輯請 – user4o01 2013-04-06 11:28:17

+0

檢查此討論:http://stackoverflow.com/questions/6478295/white-space-allowed-as-part-of-file-path – 2013-04-06 12:06:44

回答

5

我有同樣的問題,我發現這個解決方案。

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

ImageLoader.getInstance().displayImage(decodedUri, imageView); 
+2

什麼是fileName? – 2015-08-14 22:25:58

+0

fileName是你的File對象 – Jason 2015-12-29 10:10:57

+0

你爲我節省了很多時間:)謝謝!如果文件名具有非ascii符號,這也將有所幫助。 – 2016-03-08 11:30:06

10

對方回答不幸的是,沒有什麼fileName是經過這麼一些額外的挖我設法使用本地圖片與ImageLoader的使用太清楚:

示例代碼:

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 loading local image with space in path and with universal image loader也幫助解決了這個問題。

相關問題