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

第二种方式更好。但是你为什么要自己解码 Bitmap 并改变它的大小呢?

如果要将其显示为背景,只需使用

myBgView.setBackground(R.drawable.field);

在您的活动父视图上。

于 2013-03-17T12:57:08.360 回答
0

我发现需要第二种方法。第一种方法在垃圾收集到达之前浪费了太多内存。我还发现在加载新图像之前,我肯定需要对所有图像调用回收。简单地取消引用它们并期望垃圾收集来捡起它是不够的。由于这个事实,我经常内存不足。

于 2013-03-22T01:23:19.267 回答