gpt4 book ai didi

java - 制作多图安卓游戏,如何避免多图报java.lang.OutOfMemory错误

转载 作者:行者123 更新时间:2023-11-29 21:05:23 26 4
gpt4 key购买 nike

我一直在搜索 Google、Stack Overflow 和 android 开发人员指南,但我找不到解决这个问题的好方法。

我试过解除绑定(bind)可绘制对象的方法:

      unbindDrawables(View view) 
{
if (view.getBackground() != null)
{
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup)
{
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++)
{
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
}

而且我无法有效地使用 android 文档中的加载大位图,因为我制作图像的尺寸是我想要的最大尺寸(740 x 1140 png),而且我不知道我还有什么其他尺寸可以插入电话:

        mImageView.setImageBitmap(
decodeSampledBitmapFromResource(getResources(), R.id.myimage, 100, 100));

此外,每个 Activity 都有 740x1140 png 背景,以及其他较小的敌人和按钮等 ImageView 。我一次最多只能在屏幕上显示 8 张图像。我通过 XML 分配所有这些图像。然而,我在开始一项新 Activity 后完成了每项 Activity ,但似乎没有内存被释放。

下面是我的开始布局和 logcat。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bro_quest_start_bg"
android:orientation="vertical"
android:scaleType="centerCrop"
tools:context="com.torch2424.broquest.StartScreen" >

<ImageView
android:id="@+id/broquesttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/rrppgg_title"
android:contentDescription="@string/tank" />

<Button
android:id="@+id/start"
android:layout_width="120dp"
android:layout_height="55dp"
android:background="@drawable/buttons"
android:onClick="fight"
android:layout_gravity="center_horizontal"
android:text="@string/start" />

<Button
android:id="@+id/journal"
android:layout_width="120dp"
android:layout_height="55dp"
android:background="@drawable/buttons"
android:layout_gravity="center_horizontal"
android:onClick="journal"
android:text="@string/journal" />

<Button
android:id="@+id/character"
android:layout_width="120dp"
android:layout_height="55dp"
android:background="@drawable/buttons"
android:layout_gravity="center_horizontal"
android:onClick="character"
android:text="@string/character" />

<Button
android:id="@+id/shop"
android:layout_width="120dp"
android:layout_height="55dp"
android:background="@drawable/buttons"
android:layout_gravity="center_horizontal"
android:onClick="shop"
android:text="@string/shop" />


<Button
android:id="@+id/options"
android:layout_width="120dp"
android:layout_height="55dp"
android:background="@drawable/buttons"
android:layout_gravity="center_horizontal"
android:onClick="options"
android:text="@string/options" />

<Button
android:id="@+id/quit"
android:layout_width="120dp"
android:layout_height="55dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/buttons"
android:onClick="quit"
android:text="@string/quit" />

Logcat 的链接,Log cat 格式不能很好地处理堆栈溢出 :( http://pastebin.com/dZSPaq4d

P.S 这些图片都是我的 drawable 文件夹里的 drawable

最佳答案

尝试使用像 Picasso 这样的图像缓存库。

关于java - 制作多图安卓游戏,如何避免多图报java.lang.OutOfMemory错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767461/

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