我创建了一个包含10个TextView框的Android应用程序,我给每个人提供了不同的背景。当我在我的设备上运行应用程序时,如果我使用10种不同的背景,它会崩溃。如果我只使用8个不同的背景来填充10个TextView框,该应用程序工作正常。为什么会发生这种情况,我该如何解决?
编辑: 很抱歉没有添加代码,但下面是xml文件。请注意,我将每个TextView的背景从img1添加到img10。如果我在我的设备上加载它,程序将崩溃。如果我将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>
答案 0 :(得分:1)
可能是你的图片太大而无法在android中的每个应用程序堆中保存,这在4.2中是16 MB。
可能的解决方案是减小图像大小。
这是我在此处发布的问题中可以判断的最佳信息。