加載圖片不顯示問題。
老師,你好。我想一進來顯示所有的圖片,不分文件夾顯示。所以我將所有的路徑都傳遞到Adapter里面,現在遇到的問題是,
這樣他只會顯示最后一個文件里面的圖片。前面的文件里面的圖片不會顯示。求解!logcat里面會出現這個信息
老師,你好。我想一進來顯示所有的圖片,不分文件夾顯示。所以我將所有的路徑都傳遞到Adapter里面,現在遇到的問題是,
這樣他只會顯示最后一個文件里面的圖片。前面的文件里面的圖片不會顯示。求解!logcat里面會出現這個信息
2015-10-29
舉報
2015-12-16
這是我那會報錯的內容:
Unable to decode stream: java.io.FileNotFoundException: /storage/sdcard1/DCIM/Camera/cache: open failed: EISDIR (Is a directory)
這里說的很明白了.FileNotFoundException文件沒有被發現,路徑是:/storage/sdcard1/DCIM/Camera/cache ,(Is a directory) 這是一個目錄,當imageloader處理流程是根據路徑讀取內存卡中的圖片、壓縮、緩存到lurcache,設置到imageview。
那么為什么會報這個錯呢?是因為我們把這個image的list數據集傳過來的時候,里面居然有文件夾。
問題的位置在這里,mImgs = Arrays.asList(mCurrentDir.list());
//mCurrentDir是這個圖片最多的文件夾,mCurrentDir.list()是返回里面所有的文件=mImgs ,可是這個文件夾里有圖片也可能有子文件夾啊,不信你看看手機內存卡,或打印一下mImgs.length 和mMaxCount,他們不相等,mImgs.length要大,因為里面有文件夾被算進去了,mMaxCount是正確的,那是因為前面if(..endsWith(".jpg")||endsWith(".jpeg")||endsWith(".png"))就把文件夾排除了,
所以解決方案是把:mImgs = Arrays.asList(mCurrentDir.list()); ?刪掉,把前面if(..endsWith(".jpg")||endsWith(".jpeg")||endsWith(".png"))的那段代碼在拿過來,(去掉后面的.length)就可以了