我目前正在为学校开发一款简单的 Android 游戏,该游戏运行了一段时间,然后内存不足并崩溃。我怀疑这与我在游戏中使用的图像数量有关(10 多个项目/字符/按钮的 10-20 KB 大小的小文件,以及用于启动画面的非常大的 450 KB PNG 文件背景)。
我一直在使用 BitmapFactory 来解码我所有的小项目 PNG,并且我还能够为我的主 GameView 设置背景(仅包含最少的示例代码):
public class GameView extends SurfaceView implements SurfaceHolder.Callback {
private Bitmap background, invincibleBitmap;
//Sets the background bitmap to an image scaled to the same size as the user's screen
background = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.background), getWidth(), getHeight(), false);
invincibleBitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.invincible_item), 60, 60, false);
然而,对于我之前提到的启动画面,我一直在使用 Activity 的 Layout XML 文件来设置图像:
android:background="@drawable/main"
我希望能够像在 Activity 中的 View 中那样缩放 main.png,希望它能帮助解决内存过载问题。我该怎么做呢?我一般是 Android 的初学者,所以解决方案越简单越好。