这里看看下面的代码,回收位图中环
for (String path : all_path) {
bmp = BitmapFactory.decodeFile(path);
bitmapList.add(bmp);
}
这个代码是推动我疯了。由于在每次迭代中调用BitmapFactory.decodeFile(路径)并将结果驱动到内存中,结果发生OutOfMemory异常。我试图在解码新位图之前在循环中使用recycle()旧位图,但这意味着没有意义。我搜索了关于在循环中使用位图的答案,但未能找到答案。我该怎么办?任何人请帮助。
你的要求。“但是,你正在使用相同的参考变量BMP那么在每次迭代中,他们得到更换所有位图”很奇怪。函数'decodeFile'每次循环都会返回一个新的对象。 List对象保留对每个位图的分隔符引用。 –
@JaromírAdamec我只是想说,如果OP要在循环中处理位图,然后转到下一个位图。那么就不会有问题。由于引用变量将指向下一个位图对象,并且较早的变量符合GC的条件。但是,由于OP将所有位图添加到列表中,所以它是问题的原因。 – gprathour