1

Android アプリケーションでは、(他のいくつかの質問への回答が示唆している) 画像リソースは、最初に使用されるとき、たとえば を呼び出すときにメモリに読み込まれますImageView.setImageResource(myResId)

イメージ リソースを強制的にメモリからアンロードして、メモリ フットプリントを制御するにはどうすればよいですか?

ビューページャーを備えた単一のアクティビティであるアプリがあります。リソースに多くの画像があり、ビューページごとに1つの画像があります。ページの作成時に画像が読み込まれます。ユーザーが別のページにめくったときに画像をアンロードしたいです。ユーザーが戻ってきたら、画像を再度読み込むことができます。

4

1 に答える 1

0

特にメモリから画像をアンロードする必要はありません。最良の方法は、オブジェクトを使い終わった後に recycle() を呼び出し、オブジェクトへの弱参照を保持することです。これを行うには、次のようにします。

ImageView imageView = (ImageView) findViewById(R.id.imageview);
WeakReference<ImageView> imageViewRef = new WeakReference<ImageView>(imageView);

画像にアクセスしたいときはいつでも、次を使用できます。

imageViewRef.get()

このようにして、アプリがより多くのメモリを必要とする場合、画像へのハード参照がないため、画像をメモリから削除できます。

于 2012-12-24T23:20:55.493 に答える