我的应用程序可以很好地处理11个图像视图。但是在添加1个图像视图后,应用程序崩溃了。我在堆栈溢出本身找到了类似的问题答案,但无法找到我的确切解决方案。
主要活动:
package com.trendsetter.vyshnav.eatutor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
public class BreakfastActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_breakfast);
}
}
XML文件:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d1a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d1b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t2"
android:textAppearance="?android:attr/textAppearanceLarge"
android:paddingTop="10dp"
android:textColor="#006600"
android:paddingBottom="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d2"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t3"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d3a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d3b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t4"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i4" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d4a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d4b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t5"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d5a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d5b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t6"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i6" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d6a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d6b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t7"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i7" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d7a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d7b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t8"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i8" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d8a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d8b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t9"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i9" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d9a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d9b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t10"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i10" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d10a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d10b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/t11"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#006600"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/i11" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d11a"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingTop="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/d11b"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</ScrollView>
logcat的:
Caused by: java.lang.OutOfMemoryError: Failed to allocate a 9815052 byte allocation with 4194208 free bytes and 5MB until OOM
答案 0 :(得分:0)
添加AndroidManifest.xml文件并解决问题:
<application
....
....
android:largeHeap="true"
</application>
答案 1 :(得分:0)
您的Scrollview似乎是多组3个TextView和一个ImageView的集合。
我建议使用3个字符串值定义一个自定义对象,并使用一个int值来保存图像的R.drawable
整数值。
然后,您可以将自定义XML行定义为单个对象。并且&#34;绑定&#34;通过ListView + ArrayAdapter或RecyclerView将每个对象添加到视图中。
为了修复内存不足错误,您应该使用像Picasso或Glide这样的图像加载库将前面提到的整数资源ID加载到ImageView中,而不是将完整的原始图像加载到内存中。
答案 2 :(得分:0)
这种情况正在发生,因为您的图像大小大于2Mb,因此请尝试压缩baseAdapter中的图像: 你可以按照这个链接压缩图像: How to compress image size?