2016-11-23 44 views
0

我不是經驗豐富的android開發人員,所以請原諒我的無知。我應該有2個圖像由側視圖側水平地,兩者的中心適當地爲使得有足夠的裕度,如下面的例子:Android:在LinearLayout中集中多個imageView,並有足夠的餘量

----------------------------------- 
|         | 
|   A   B   | 
|         | 
----------------------------------- 

我正在使用的LinearLayout和使用該中心對準和我正在這個:

----------------------------------- 
|         | 
|    AB    | 
|         | 
----------------------------------- 

我想避免填充,因爲我可能不得不動態地添加更多的元素,然後應該以足夠的餘量再次居中。請建議它是否可以在linearLayout中完成或以其他方式建議另一種佈局。

回答

1

您需要在LinearLayout中使用權重,因爲它分爲兩部分。

 <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
android:oriantion="horizontal" 
     android:weightSum="2"> 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="1" /> 

     <Button 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="3" /> 

     </LinearLayout> 
+0

對不起我的壞編輯.. –

+0

其實,是否有必要添加weightSum呢?因爲如果我添加更多元素,我需要更改weightSum。我想如果我沒有全部指定,它會自動計算正確的? –

+0

是的,如果你添加一個圖像然後權重= 3在linearlayout和imageview權重= 1 –

1

使用下面的代碼!

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center" 
    > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@mipmap/ic_launcher"/> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="50dp" 
     android:src="@mipmap/ic_launcher"/> 

</LinearLayout> 

只需更換在SRC你的形象。希望這對你有用!

+0

其實我想避免只有2個元素的硬編碼。我可能會以編程方式添加更多的imageView,並希望佈局自行調整。不管怎麼說,還是要謝謝你。 –

+0

@EkanshGupta對圖像數量有限制嗎? –

+0

是的,5我會說。 –

1

那是什麼時候layout_weight的行動,這是一種方式安排在線性佈局的項目,並說每個視圖需要多少空間。因此,對於單個線性佈局,如果第一個圖像的佈局權重爲1,而另一個視圖的佈局權重爲1,則所有兒童的總重量將決定每個視圖將佔用多少百分比。然後,對於此佈局,總數將爲2.因此,第一個圖像需要1/2)一半,另一半也是如此。您也可以通過編程方式更改佈局權重,以獲取xml!

<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal"> 

<ImageView 
    android:id="@+id/image1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    /> 

<ImageView 
    android:id="@+id/image2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    /> 
</LinearLayout> 

在線性佈局中有一個可選的屬性權重,但系統將無論如何計算它。在這個例子中爲2。

2

試試這個

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:weightSum="1" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/image1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:src="@mipmap/ic_launcher" 
     android:layout_weight=".5" /> 

    <ImageView 
     android:id="@+id/image2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:src="@mipmap/ic_launcher" 
     android:layout_weight=".5" /> 
</LinearLayout>