0

要するに、おそらくガベージコレクションが原因で、次の方法で画像を再スケーリングするのは非効率的な方法ですか?

playBg_ = BitmapFactory.decodeResource(res_, R.drawable.field);
playBg_ = Bitmap.createScaledBitmap(playBg_, screenWidth_, screenHeight_, false);

そして、このようなことをした方が良いでしょうか?

Bitmap tempBmp = BitmapFactory.decodeResource(res_, R.drawable.field);
playBg_ = Bitmap.createScaledBitmap(tempBmp, screenWidth_, screenHeight_, false);
tempBmp.recycle();

それとももっと良い方法がありますか?

ありがとう!

4

3 に答える 3

1

eeePadに aLogcatをインストールすると、logcat の出力を読み取ることができます。

于 2013-03-17T12:51:51.670 に答える
0

2番目の方法が必要であることがわかりました。最初の方法では、ガベージ コレクションが到達する前に大量のメモリが浪費されました。また、新しい画像をロードする前に、必ずすべての画像で recycle を呼び出す必要があることもわかりました。それらを単に逆参照し、ガベージ コレクションがそれを拾うことを期待するだけでは十分ではありません。この事実のために、私は常にメモリが不足していました。

于 2013-03-22T01:23:19.267 に答える