gpt4 book ai didi

android - 加载位图时出现 "BitmapFactory.decodeResource"应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 11:47:38 27 4
gpt4 key购买 nike

我正在为 child 子开发一款游戏,其中包含不同的教育练习。在其中一个中,我需要一个图片背景,因此我正在加载它并使用矩阵缩放它以填充屏幕。但有时加载图片会导致崩溃。

public DrawThread(SurfaceHolder surfaceHolder, Resources resources, float screen_x_max, float screen_y_max){
this.surfaceHolder = surfaceHolder;
screenWidth=screen_x_max;
screenHeight=screen_y_max;
// picture for bg
picture = BitmapFactory.decodeResource(resources, R.drawable.background);
...
}

在此线程结束时,我回收它并返回 null。

if (this.picture!=null)
{
this.picture.recycle();
this.picture=null;
}

但是应用程序仍然崩溃。有错误日志:

java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:494)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:370)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:393)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:419)
at lexu.me.childstudy_lite.DrawThreadFindAnimals2.<init>(findAnimals2.java:271)
at lexu.me.childstudy_lite.findanimals2_view.surfaceCreated(findAnimals2.java:186)
at android.view.SurfaceView.updateWindow(SurfaceView.java:548)
at android.view.SurfaceView.dispatchDraw(SurfaceView.java:353)
at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
at android.view.ViewGroup.drawChild(ViewGroup.java:1737)

谢谢。

最佳答案

这是 Android 上的一个经典问题。这应该为您提供大量的提示和方法:

Lazy load of images in ListView

关于android - 加载位图时出现 "BitmapFactory.decodeResource"应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com