2013-05-21 67 views
0

我試圖在文件瀏覽器中加載視頻的縮略圖,但它導致我內存不足。文件瀏覽器內存不足

public class Filea { 

private Bitmap VideoIcon; 

public Bitmap getVideoIcon() { 
    return VideoIcon; 
} 

public void setVideoIcon(Bitmap videoIcon) { 
    VideoIcon = videoIcon; 
} 

這是針對文件夾中的每個視頻文件完成的。

每次我加載一個新的文件夾,它保留了來自前一個文件夾的信息,如果是的話,我該如何刪除不需要的資源?

private List<Filea> LoadFiles(String dirPath) { 
    inSearch = false; 
    List<Filea> files = new ArrayList<Filea>(); 

    try { 
    for(String F:EditedFileList(current)) { 

     Filea file = new Filea(); 

    file.setVideoIcon(ThumbnailUtils.createVideoThumbnail(current + "/" + getName(F), MediaStore.Images.Thumbnails.MINI_KIND)); 

     files.add(file); 
    } 
    } catch (NullPointerException e) { 
     e.getStackTrace(); 
    } catch (NoSuchElementException e) { 
     Log.i("LoadFiles", "No files found"); 
    } 
    return files; 
} 

這是如何獲得信息。

隨着視頻縮略圖,我正在加載其他位數據,例如,文件名,大小,權限,圖像圖標(如位圖)等..

回答

0

最有可能的是你圍繞着一堆不需要的引用。我的建議是將圖像放入LRUCache並從那裏加載它們。這樣你可以設置一個合理的最大內存量在圖像上使用。

0

我發現這個問題,我試圖加載圖片的完整圖像,而不是thumbnails.`

   file.setImageIcon(ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(current + "/" + getName(F)), 100, 100)); 

感謝。 LukeMovement。