-2

10 個の TextView ボックスを含む Android アプリを作成し、それぞれに異なる背景を与えました。デバイスでアプリを実行すると、10 個の異なる背景を使用するとクラッシュします。10 個の TextView ボックスを埋めるために 8 つの異なる背景のみを使用すると、アプリは正常に動作します。なぜこれが起こり、どうすれば修正できますか?

編集:コードを追加しないで申し訳ありませんが、以下は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 に答える