Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 文件浏览器内存不足_Android_Video_Bitmap_Icons_Out Of Memory - Fatal编程技术网

Android 文件浏览器内存不足

Android 文件浏览器内存不足,android,video,bitmap,icons,out-of-memory,Android,Video,Bitmap,Icons,Out Of Memory,我试图在文件浏览器中加载视频的缩略图,但这会导致内存不足 public class Filea { private Bitmap VideoIcon; public Bitmap getVideoIcon() { return VideoIcon; } public void setVideoIcon(Bitmap videoIcon) { VideoIcon = videoIcon; } 这是为文件夹中的每个视频文件执行的 每次我加载一个新文件夹时,它是否会保留上一个文

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

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;
 }
私有列表加载文件(字符串dirPath){
inSearch=false;
列表文件=新的ArrayList();
试一试{
for(字符串F:EditedFileList(当前)){
Filea file=新的Filea();
file.setVideoIcon(ThumbnailUtils.createvideo缩略图(当前+“/”+getName(F)、MediaStore.Images.Thumbnails.MINI_-KIND));
文件。添加(文件);
}
}捕获(NullPointerException e){
e、 getStackTrace();
}捕获(无接触元素例外e){
Log.i(“加载文件”,“未找到文件”);
}
归还文件;
}
这就是获得信息的方式


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

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

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

               file.setImageIcon(ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(current + "/" + getName(F)), 100, 100));
谢谢。情绪低落