0

listView とカスタム ArrayAdapter があります。私のリストビューには多くの写真があり、強力なメモリクリーニングを使用しています:

@Override
public void onDestroy() {       
    list.clear();
    adapter.notifyDataSetChanged();
    listView.setAdapter(null);
    super.onDestroy();
}

また、画像の読み込みには LazyLoader を使用します。しかし、アプリケーションを何度か使用した後 (リストを更新するとき)、「ビットマップ サイズが vm の予算を超えています」というエラーが表示されます。ホームボタンを押してアプリケーションメモリに戻るとクリアされますが。それなしでメモリをクリアするにはどうすればよいですか?

4

2 に答える 2

1

使用しなくなったすべての Bitmap オブジェクトでrecycle()を呼び出して、できるだけ早くメモリを解放してください。

また、Bitmap.createScaledBitmap()を使用して、ImageView が必要とする最小の Bitmap を作成し、余分なメモリを節約します。

于 2012-06-27T10:00:36.707 に答える
0

Loading Large Bitmapsについて読んでみてください。これにより、メモリ リークの問題を回避できます。

于 2012-06-27T10:18:55.287 に答える