我遇到了位图回收问题。我在 pulltorefreshlistview 中显示位图。我有大约 30-50 张图片要下载,还有一些来自 web 服务功能的文本。我正在使用延迟加载图像并下载图像并将它们解码为 80x80 大小。我的问题是我得到了 OutOfmemoryError。所以我做了一些 R 和 D 并且知道位图没有立即被 GC。所以我想做 recycle() 位图来回收内存。在位图上调用 recycle() 的位置。我正在使用著名的惰性列表. 在设置位图后,在下面的代码中,我尝试执行 bitmap.recycle()。我没有像 stackoverflow 上报告的其他错误那样出现任何错误,但奇怪的是列表项显示为空白。我想知道如果我 recycle() 位图为什么会影响同一行中的文本视图。由于有大量图像,我的应用程序很快就会崩溃。我还想问一下如何一次回收Listview中设置的所有图像。请有人帮助我。
//Used to display bitmap in the UI thread
class BitmapDisplayer implements Runnable
{
Bitmap bitmap;
PhotoToLoad photoToLoad;
public BitmapDisplayer(Bitmap b, PhotoToLoad p){bitmap=b;photoToLoad=p;}
public void run()
{
if(imageViewReused(photoToLoad))
return;
if(bitmap!=null)
photoToLoad.imageView.setImageBitmap(bitmap);
else
photoToLoad.imageView.setImageResource(stub_id);
}
}