2013-02-13 58 views
5

我想實現的是類似這樣的佈局: enter image description here如何實現像這樣的圖像佈局的Android用戶界面?關於Android:clipChildren

我曾嘗試使用此代碼,實現這樣的形象,但不幸的是,我失敗了。 這是我的代碼片段:

<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:clipChildren="false" 
     > 



     <RelativeLayout 
      android:id="@+id/text_area_third" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/round_corner_background" 
      android:focusable="false" 
      android:paddingBottom="5dp" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp" 
      android:paddingTop="5dp" > 

      <TextView 
       android:id="@+id/text_download_purch_third" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignRight="@+id/acron_icon" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="30dp" 
       android:layout_marginTop="10dp" 
       android:gravity="left" 
       android:maxLines="2" 
       android:text="1asdasdasdasdadsasdasdadasdasdasdasdasdasdasdasd" 
       android:textColor="@color/black" 
       android:textSize="10sp" 
       android:textStyle="normal" /> 

      <ImageView 
       android:id="@+id/acron_icon" 
       android:layout_width="20dp" 
       android:layout_height="20dp" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:layout_margin="5dp" 
       android:layout_marginTop="10dp" 
       android:background="@drawable/acron" 
       android:scaleType="fitCenter" /> 
     </RelativeLayout> 

     <LinearLayout 
      android:layout_alignTop="@+id/text_area_third" 
      android:layout_alignLeft="@+id/text_area_third" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@color/orange" 
      android:layout_marginLeft="-10dp" 
      android:layout_marginTop="-10dp" 
      android:padding="3dp" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="GET" 
       android:textColor="@color/white" 
       android:textSize="13sp" 
       android:textStyle="bold" /> 
     </LinearLayout> 

    </RelativeLayout> 

enter image description here

你可以看到,在「GET」標籤(橙色背景)通過綁定的父裁剪。我已經設置了android:clipChildren="false",但它仍然被裁剪。有人能幫助我嗎?

+0

如果你將其調整到父佈局會發生什麼(使用'layout_alignParentTop/Left'),而不是'text_area_third'(並相應地調整了'layout_marginLeft/Top')? – Geobits 2013-02-13 03:31:04

+0

@Geobits:我也試過,但也發生了同樣的錯誤 – 2013-02-13 03:34:05

回答

3

單一RelativeLayout的是要走的路。請記住保持儘可能簡單的事情。在RelativeLayout中,最後聲明的元素被渲染在其他元素之上。下面的XML應該(有點)適合您的需求,只需要調整圖像和邊距和大小。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="180dp" 
    android:layout_height="60dp" 
    android:background="#DDD" > 

    <TextView 
     android:id="@+id/text_download_purch_third" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="3dp" 
     android:layout_marginLeft="12dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/round_corner_background" 
     android:maxLines="2" 
     android:paddingLeft="4dp" 
     android:paddingRight="25dp" 
     android:paddingTop="16dp" 
     android:text="1asdasdasdasdadsasdasdadasdasdasdasdasdasdasdasd" 
     android:textColor="@color/black" 
     android:textSize="10sp" 
     android:textStyle="normal" /> 

    <ImageView 
     android:id="@+id/acron_icon" 
     android:layout_width="20dp" 
     android:layout_height="20dp" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_margin="5dp" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/acron" 
     android:scaleType="fitCenter" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="8dp" 
     android:layout_marginTop="4dp" 
     android:background="#FFA0A0" 
     android:padding="2dp" 
     android:text="GET!" 
     android:textColor="@color/white" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 

</RelativeLayout> 
0

你有沒有想過使用FrameLayout?這使得圖像更容易的重疊......(做一個佈局/視圖出現在另一個之上)......這裏是一個很好的教程...

http://mobile.tutsplus.com/tutorials/android/android-sdk_frame-layout/

+0

['FrameLayout'](http://developer.android.com/reference/android/widget/FrameLayout.html)永遠不應該用來保存更多比一個孩子。 – Eric 2013-02-13 03:51:52

+1

該文件說,如果你不關心不同的屏幕分辨率,它可以使用它.. – chuthan20 2013-02-13 19:23:42

+0

@Eric:你能詳細說明爲什麼'FrameLayout'不應該被用來容納多於一個孩子嗎? – 2013-02-19 11:22:23