2014-01-25 149 views
3

我想要實現這個佈局:實現這個佈局

enter image description here

,我已經能夠最近來是這樣的:

enter image description here

佈局到目前爲止,這是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerInParent="true" 
    android:layout_centerVertical="true" 
    android:baselineAligned="true" 
    android:orientation="vertical" 
    android:weightSum="4" > 

    <LinearLayout 

     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:paddingBottom="8dip" > 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 
    </LinearLayout> 

    <LinearLayout 

     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:paddingBottom="8dip" 

     > 

     <ImageButton 

      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" 

      /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 
    </LinearLayout> 

    <LinearLayout 

     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:paddingBottom="8dip" > 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:paddingBottom="8dip" > 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="@null" 
      android:scaleType="fitCenter" 
      android:src="@drawable/myimage" /> 
    </LinearLayout> 

</LinearLayout> 

如何設計ab奧維佈局?

+0

RelativeLayout的我會容易得多。很難做到你想要的LL。 – Simon

回答

1

這種佈局的實際工作能否按預期:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <!-- Center layout --> 
    <LinearLayout 
     android:id="@+id/llCenter" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_centerInParent="true" 
     android:paddingBottom="8dp" 
     android:orientation="vertical" 
     > 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
    </LinearLayout> 
    <!-- Left layout --> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@id/llCenter" 
     android:paddingBottom="8dp" 
     android:orientation="vertical" 
     > 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
    </LinearLayout> 
    <!-- Right layout --> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/llCenter" 
     android:paddingBottom="8dp" 
     android:orientation="vertical" 
     > 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_launcher" 
     /> 
    </LinearLayout> 
</RelativeLayout> 

結果:

enter image description here

+0

不客氣,Quaki賈巴爾;) –

2

創建三個線性佈局,其方向設置爲垂直且佈局權重相等。每個線性佈局的子視圖也必須具有相同的佈局權重。將第一和第三線性佈局的重力設置爲center_vertical。

1

爲什麼你不離開不必要的佈局...... ?? 並使用以下...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:layout_width="100dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="55dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="75dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="95dp" 
      android:orientation="vertical" > 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="100dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 
     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="55dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="75dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="95dp" 
      android:orientation="vertical" > 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="100dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 
     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="55dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="75dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="95dp" 
      android:orientation="vertical" > 
     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 
+0

你可以留下頂部佈局,覺得沒有什麼...如果你不明白我在說什麼,我可以用代碼解釋...更多.... – Nabin

+0

嘿Nabin請你詳細說明。我添加了圖像按鈕,但我沒有得到它 – oat

+0

這是非常低效的,並且在運行時會很慢。 – Simon

1

有關擴展ViewGroup什麼?

如果選中的文件有你應該如何創建自定義的孩子容器的例子。

基本上在佈局具有下列規則:

  • 孩子的重力垂直居中
  • 對於奇數列與由左到右垂直居中去行中間元素重疊
  • 對於下同一個

你有偶數列ñ通過該線路/ 2元,其餘的(N/2)如果你能夠做T實現自定義佈局的帽子,代價是需要更多的時間進行開發,你會得到更好的結果,並且不需要添加要添加的元素的數量......你將擁有一個可以管理不同的佈局的情況。

我建議你看看custom attributes爲好,爲了讓你會需要直接到XML聲明屬性的整合。