【问题标题】:File browser out of memory文件浏览器内存不足
【发布时间】:2013-05-22 06:15:12
【问题描述】:

我正在尝试在文件浏览器中加载视频的缩略图,但这导致我内存不足。

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

这是获取信息的方式。

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

【问题讨论】:

    标签: android video bitmap icons out-of-memory


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      谢谢。卢克运动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-29
        • 2013-08-18
        • 2018-02-05
        • 2017-05-15
        • 2017-12-20
        • 2014-11-12
        • 2019-09-21
        相关资源
        最近更新 更多