以下布局的典型错误?
问题描述:
以下布局仅在删除RelativeLayouts中的所有ImageViews
时才起作用。以下布局的典型错误?
如果我添加一个ImageView
,该应用程序停止工作。
我正在开发一个项目,我需要在每个RelativeLayout中插入一个ImageView
。
帮我解决这个问题。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/ll_menu"
android:background="#F8F5B7"
android:padding="20dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/r1"
android:background="@color/colorPrimary"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img1"
android:src="@drawable/img1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/img1"
android:fontFamily="serif-monospace"
android:text="Layout 1"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/r2"
android:background="@color/colorPrimary"
android:layout_marginTop="20dp"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img2"
android:src="@drawable/img2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:text="Layout 2"
android:layout_toRightOf="@+id/img2"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/colorPrimary"
android:id="@+id/r3"
android:layout_marginTop="20dp"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img3"
android:src="@drawable/img3"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:text="Layout 3"
android:layout_toRightOf="@+id/img3"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/r4"
android:layout_marginTop="20dp"
android:background="@color/colorPrimary"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img4"
android:src="@drawable/img4"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:text="Layout 4"
android:layout_toRightOf="@+id/img4"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/r5"
android:background="@color/colorPrimary"
android:layout_marginTop="20dp"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img5"
android:src="@drawable/img5"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:text="Layout 5"
android:layout_toRightOf="@+id/img5"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/colorPrimary"
android:id="@+id/r6"
android:layout_marginTop="20dp"
android:padding="10dp">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img6"
android:src="@drawable/img6"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:layout_toRightOf="@+id/img6"
android:text="Layout 6"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
android:textStyle="bold"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
答
你一定会得到的OutOfMemoryError。尝试加载缩小的图像版本。
例如,它不值得载入1024×768像素的图片到内存中,如果它最终将在ImageView的显示在128x96像素的缩略图
注: 尝试使用强烈推荐图像加载库像滑翔或毕加索将图像加载到内存中。这两个带有很多功能&优化。
+0
有没有一种方法,我可以设置我的android应用程序自动选择图像的高品质版本,如果该设备具有高密度。我是Android开发的新手,所以我不太了解。 –
+0
不是我所知道的,但你可以手动完成 –
请发帖内嵌代码,而不是引用。你的LogCat是怎么说的? –
为什么你把所有相对布局放在线性布局内 –
在引用其他视图时删除xmlns:android名称空间的线性布局和相对布局使用@id不是@ + id也发布你的日志猫给其他人看看错误 –