-2

我创建了一个包含 10 个 TextView 框的 Android 应用程序,并为每个框设置了不同的背景。当我在我的设备上运行该应用程序时,如果我使用 10 个不同的背景,它就会崩溃。如果我只使用 8 种不同的背景来填充 10 个 TextView 框,则该应用程序可以正常工作。为什么会发生这种情况,我该如何解决?

编辑:很抱歉没有添加代码,但下面是 xml 文件。请注意,我为从 img1 到 img10 的每个 TextView 添加了背景。如果我将它加载到我的设备上,程序将崩溃。如果我将 img9 更改为 img7 并将 img10 更改为 img7,那么它将正常工作。我不知道为什么会发生这种情况,我检查了尺寸。它们加起来不超过 16MB。

所以,原谅我的无知。我是创建 android 应用程序的新手,但我发现抛出了 OutOfMemory 异常。这不会产生大小,b/c 我的图像都在 100 KB 以下。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#8ad0e8"
    tools:context=".Adamantium1" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:weightSum="3" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:background="@drawable/img1"
            android:textStyle="bold"
            android:text="9" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img2"
            android:text="9" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img3"
            android:layout_weight="1"
            android:text="9" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/linearLayout1"
        android:layout_below="@+id/linearLayout1"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img4"
            android:layout_weight="1"
            android:text="9" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img5"
            android:text="9" />

        <TextView
            android:id="@+id/textView6"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img6"
            android:text="9" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/linearLayout2"
        android:layout_below="@+id/linearLayout2"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp" >

        <TextView
            android:id="@+id/textView7"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img7"
            android:text="9" />

        <TextView
            android:id="@+id/textView8"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img8"
            android:text="9" />

        <TextView
            android:id="@+id/textView9"
            android:layout_width="fill_parent"
            android:layout_height="90dp"
            android:layout_weight="1"
            android:gravity="center"
            android:textSize="60sp"
            android:textStyle="bold"
            android:background="@drawable/img9"
            android:text="7" />
    </LinearLayout>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView10"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:ems="1"
        android:inputType="numberPassword" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView10"
        android:layout_width="fill_parent"
        android:layout_height="90dp"
        android:layout_below="@+id/linearLayout3"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:text="9"
        android:textSize="60sp"
        android:background="@drawable/img10"
        android:textStyle="bold" />

    <Button
        android:id="@+id/EnterPass"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="90dp"
        android:layout_height="40dp"
        android:layout_alignBottom="@+id/editText1"
        android:layout_marginLeft="21dp"
        android:layout_toRightOf="@+id/editText1"
        android:text="Enter" />

</RelativeLayout>
4

1 回答 1

1

可能是您的图像太大而无法保存在 android 中每个应用程序的堆中,在 4.2 中为 16 MB。
可能的解决方案是减小图像大小。
这是我可以从您在此处发布的问题中得出的最好结论。

于 2013-10-20T07:57:08.230 回答