Android で画像のリサイクルはどのように機能しますか?
詳しく説明させてください:
私が以下を持っている場合:
myBitmap = BitmapFactory.decodeResource(curView.getResources(), R.drawable.mypic);
そして、以下をログに記録します
Log.v("ImageStuff","Image is: "+myBitmap);
次の結果が得られます。
Image is: android.graphics.Bitmap@(ResourceID here)
これは素晴らしいことですが、同じことをしてもリサイクルをそのように呼び出すと
myBitmap = BitmapFactory.decodeResource(curView.getResources(), R.drawable.mypic);
myBitmap.recycle()
上記と同じ結果が得られます。recycle を呼び出すとビットマップがクリアされるので、null としてログに記録されると思いましたか?
また、次のようなビットマップを取るメソッドがある場合:
public void doStuff(Bitmap pic){
//Code here
}
上記のようにビットマップを作成し、doStuff に送信します。
myBitmap = BitmapFactory.decodeResource(curView.getResources(), R.drawable.mypic);
doStuff(myBitmap);
画像をリサイクルしたい場合、myBitmap.recycle(); を呼び出す必要がありますか? pic.recycle と同様に (終了後の doStuff メソッド内で)。