ビットマップのリサイクルに問題があります。ビットマップを pulltorefreshlistview に表示しています。Webサービス機能からのテキストとともにダウンロードする画像が約30〜50個あります。画像の遅延ロードを使用して画像をダウンロードし、それらを 80x80 サイズにデコードしています。私の問題は、OutOfmemoryError が発生していることです。そのため、いくつかの R と D を実行したところ、ビットマップがすぐに GC されなかったことがわかりました。したがって、メモリを再利用するためにビットマップを recycle() したいと思います。ビットマップで recycle() を呼び出す場所。私は有名なlazylistを使用しています. この下のコードでは、ビットマップを設定した後、bitmap.recycle() を実行しようとしました。スタックオーバーフローで報告された他のエラーのようなエラーはありませんが、リストアイテムが空白で表示されるのは奇妙なことです。ビットマップを 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);
}
}