我开发了一个PhotoViewer应用程序,只需在外部存储中列出图像文件,并在用户想要查看其中一个时显示它们。当我的线程为图像绘制缩略图时,我的问题就出现了。
如果图像数量少于500左右,那对我来说没问题,但是如果用户有超过1000张图像(很可能)后面有一些绘图拇指,内存使用率超出限制而且我得到了OutOfMemory Exception。
我曾尝试使用bitmap.recycle(),但这次我遇到了使用循环位图错误(RuntimeException)。您能否建议我为外部存储中的图像显示越来越多的缩略图(可能超过2000)?
答案 0 :(得分:0)
如果您使recycle()正常工作,您的OutOfMemory问题可能会得到解决。 RunTimeException将是一个仍在尝试绘制已经回收的位图的ImageView,因此在回收之前必须确保没有任何东西在使用位图。
您还可以在使用ListView.OnScrollListener滚动ListView时停止加载缩略图 - 如果用户浏览列表,则滚动过去的所有中间行仍然会被加载。