Android Bitmap.resycle()の使い方

AndroidアプリでBitmapオブジェクトがつかんだリソースを離さないとメモリリークにつながるので、resycle()メソッドで解放する必要があります。

ディスプレイサイズに合わせてビットマップを作成する方法も含めて、使い方は次のようになります。

Display display = getWindowManager().getDefaultDisplay();
displayWidth = display.getWidth();
displayHeight = display.getHeight();

if (bitmap != null) {
    bitmap.recycle();
    bitmap = null;
}

Bitmap original = BitmapFactory.decodeFile(myFile);
bitmap = Bitmap.createScaledBitmap(original, displayWidth, displayHeight, true);
original.recycle();
original = null;

メモリリークを確認するには、「long free = Runtime.getRuntime().freeMemory(); 」のようにして調べます。Bitmap以外にもメモリリークはするようなので、気をつけましょう。Activity終了時に、Viewへ登録されているイメージなどのクリアのために、view.setImageDrawable(null)などとしておくと安全です。

同じタグの記事: Android
同じカテゴリの記事: Android
関連書籍: Android