我正在使用以下方法加载多个位图(不同大小的aprox 40,从全屏图像到单个精灵帧):
Bitmap graphic = BitmapFactory.decodeResource(res, R.drawable.mygraphics);
然后我使用它来缩放它们(因此它们在相对于屏幕的任何设备上看起来都相同):
Bitmap scaledGraphic = Bitmap.createScaledBitmap(mygraphics, screen.width()/2, screen.height()/2, true);
以上示例仅仅是为了将图像向上/向下缩放到屏幕尺寸的四分之一。
然后我在onDraw()方法中引用了缩放图像:
canvas.drawBitmap(scaledGraphic, X, Y, null);
这一切都可以,并且在各种屏幕尺寸上看起来都不错。
我的问题是,据我所知,createScaledBitmap在内存中创建了另一个位图,而不是仅仅缩放原始位图。如果是这种情况,一旦创建了缩放位图,我就不再需要原始位图了,所以有什么方法可以从内存中删除它吗?
我需要拨打回收电话吗?我只是试图优化我的代码并且在口吃动画等方面遇到很多问题...... GC被调用几次(不是很多)而且我真的不知道为什么会这样,但是认为它会很好无论如何都要练习解决这个问题。