android - 添加一些图像按钮时 Android 内存不足异常

标签 android

我写了一个显示一些(图像)按钮的小型 Android 项目。它在我的手机 ( Galaxy S ) 上运行良好,但是当我尝试在模拟器上运行它时,它会出现以下错误: Caused by: java.lang.OutOfMemoryError: 位图大小超出VM预算

请注意,第一个 Activity 有 8 个图像按钮,它给出了内存不足异常。当我删除 3 个按钮时,它工作正常。实际上,只要 scrollView 不可见,它就可以正常工作,如果我添加那 3 个已删除的按钮(因此,scrollView 将可见),它会出现内存不足错误。我认为,这个“内存不足”异常与(图像)按钮的数量无关,而是与背景图像有关。这是我的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <ImageView
            android:id="@+id/image"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:scaleType="center"
            android:src="@drawable/backgrounmobile" />

        <ScrollView
            android:id="@+id/ScrollView01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="left|top|bottom|right" >

            <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/centerlayout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="right|top|bottom"
                android:layout_marginBottom="10dip"
                android:layout_marginLeft="10dip"
                android:layout_marginRight="20dip"
                android:layout_marginTop="0dip"
                android:orientation="vertical" >

                <Button
                    android:id="@+id/divan"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/divanbtn" />

                <Button
                    android:id="@+id/boostan"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/boostanbtn" />

                <Button
                    android:id="@+id/mavaez"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/mavaezbtn" />

                <Button
                    android:id="@+id/hekayat"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/hekayatbtn" />

                <Button
                    android:id="@+id/saadiname"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/saadinamebtn" />

                <Button
                    android:id="@+id/settings"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/settingsbtn" />

                <Button
                    android:id="@+id/about"
                    android:layout_width="160dip"
                    android:layout_height="110dip"
                    android:layout_gravity="center|top"
                    android:background="@drawable/aboutbtn" />
            </LinearLayout>
        </ScrollView>
    </FrameLayout>

</LinearLayout>

你能帮帮我吗?

最佳答案

你的内存不足,最好的补救方法是使用更少的内存,加载较小的图像在这里会有很大帮助,谷歌的 android 团队已经很友好地提供了一个简短的描述如何这样做:)

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

关于android - 添加一些图像按钮时 Android 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161079/

相关文章:

android - 如何检查 wifi 是否真的在 Android 中连接

android - 使用 LayoutParams 动态添加 View

android - 有很多 HandlerThreads 活着,什么也不做,只是等待,这不好吗?

android - 用红色替换位图中的黑色

android - 预定义文本直接张贴在 Facebook 墙上

android - 强制检测 Activity 以多窗口模式运行

android - 在 Android 的 okhttp 中向 GET 请求添加查询参数

android - 适用于 Android 的 3D 音频库

android - eclipse 错误 : “Activity Name must be specified”

android - 收到 'User does not have Permission to access this object. Code: -13021 HttpResult: 403' 错误。请查看详情