3

以下のコードでは、2 つのビットマップがあり (私の質問には関係ないので、それらを作成するためのコードは省略しました)、レイアウトに ImageView もあります。ImageView に最初のビットマップをドローアブルとして表示させ、次に 2 番目のビットマップを再びドローアブルとして表示させます。

BitmapDrawable が何であるかを正確に把握できないため、私の質問は「新しい BitmapDrawable」部分に関連しています。それは単なる参照ですか、それとも作成されるたびにメモリを使い果たしますか? つまり、bitmap1 用に作成した BitmapDrawable は、bitmap2 用に別の BitmapDrawable を作成する前に削除/リサイクルする必要がありますか?

ありがとう。

Bitmap bitmap1,bitmap2;

...assume bitmap1 and bitmap2 contain valid bitmaps...

// get imageview
ImageView iv = (ImageView)findViewById(R.id.my_imageview);

// make the imageview display bitmap1
iv.setImageDrawable(new BitmapDrawable(getResources(),bitmap1));        

// now make the imageview display bitmap2
iv.setImageDrawable(new BitmapDrawable(getResources(),bitmap2));        
4

1 に答える 1

1

ビットマップは、必要な限り保持する必要があります。新しいビットマップを作成するにはコストがかかります。十分なメモリが利用できない場合は GC が起動し、アプリはその間停止します。

ビットマップを効率的に表示するには、これを参照してください http://developer.android.com/training/displaying-bitmaps/index.html

于 2012-12-30T16:17:54.560 に答える