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;
 }

这就是获取信息的方式。

除了视频缩略图,我还在加载其他数据位,例如文件名、大小、权限、图像图标(作为位图)等。

4

2 回答 2

0

我发现了问题,我试图加载图片的完整图像而不是缩略图。`

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

感谢。卢克运动。

于 2013-05-21T22:15:12.947 回答
0

很可能您保留了一堆不需要的参考。我的建议是将图像放在 LRUCache 中并从那里加载它们。这样,您可以设置合理的最大内存量以用于图像。

于 2013-05-21T17:23:50.557 回答