2017-10-17 34 views
-3

以下布局仅在删除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> 
+2

请发帖内嵌代码,而不是引用。你的LogCat是怎么说的? –

+0

为什么你把所有相对布局放在线性布局内 –

+0

在引用其他视图时删除xmlns:android名称空间的线性布局和相对布局使用@id不是@ + id也发布你的日志猫给其他人看看错误 –

回答

0

你一定会得到的OutOfMemoryError。尝试加载缩小的图像版本。

例如,它不值得载入1024×768像素的图片到内存中,如果它最终将在ImageView的显示在128x96像素的缩略图

注: 尝试使用强烈推荐图像加载库像滑翔或毕加索将图像加载到内存中。这两个带有很多功能&优化。

+0

有没有一种方法,我可以设置我的android应用程序自动选择图像的高品质版本,如果该设备具有高密度。我是Android开发的新手,所以我不太了解。 –

+0

不是我所知道的,但你可以手动完成 –