2014-07-13 30 views
1

我想用左側的圖像進行佈局,然後是右側的文本和兩個圖像。我告訴你,現在怎麼喜歡:帶有圖像和文字的Android佈局

layout

我想把右邊兩個圖標右側,旁邊的屏幕的限制。然後,如果你看到,當文本有多行時,兩個圖標消失,當文本太長時,圖標非常小。我想爲每個圖標都設置一個靜態空間。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:padding="6dip"> 

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_marginRight="6dip" 
    android:layout_centerVertical="true" 
    android:src="@drawable/ic_launcher" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:contentDescription="@string/cdLogo" /> 


<LinearLayout 
    android:id="@+id/lista2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:orientation="vertical" 
    android:paddingRight="20dip" 
    android:layout_toRightOf="@id/icon" 
    android:layout_marginRight="30dip"> 

<TextView 
    android:id="@+id/tituloevento" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:gravity="left" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/distritoevento" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:gravity="left" 
    android:textSize="12sp"/> 

<TextView 
    android:id="@+id/coorp0" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:visibility="gone" /> 


<TextView 
    android:id="@+id/coorp1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:visibility="gone" /> 


<TextView 
    android:id="@+id/esgratis" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:visibility="gone" /> 

</LinearLayout> 


<LinearLayout 
    android:id="@+id/caracteristicas" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:layout_toRightOf="@id/lista2" 
    android:layout_alignParentRight="true"> 


     <ImageView 
      android:id="@+id/iconoMapa" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription="@string/cdTieneCoor" 
      android:layout_weight="0.5"/> 


     <ImageView 
      android:id="@+id/iconoGratis" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription="@string/cdGratisPago" 
      android:layout_weight="0.5"/> 

    </LinearLayout> 
    </RelativeLayout> 
+0

我真的建議你使用自定義佈局,而不是這樣一個相對複雜的RelativeLayout,以提高你的表現。特別是如果您將它用作ListView項目。 – suitianshi

回答

1

我建議你使用LinearLayout作爲頂級容器,並與weight屬性分配的子元素的空間。使用重量時,對於垂直佈局,您必須設置layout_width0dplayout_heigth0dp

例如:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="5" > 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2" > 
    </LinearLayout> 

</LinearLayout>