2011-12-19 74 views
1

我一直在網上查找,大多數人都有一個解決縮放問題的答案,但我無法找到該選項。這是xml。在屏幕上完美地居中放置一個按鈕

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

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" android:layout_gravity="center" android:layout_weight="1"/> 

</LinearLayout> 

如何使按鈕居中沒有任何拉伸(又名我希望它有它的內容包裹)。

由於

回答

2

使用RelativeLayout的代替的LinearLayout:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

的另一種方法是使用兩個嵌套LinearLayouts,一個水平和一個垂直。例如:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

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

     <Button 
      android:id="@+id/button1" 
      android:text="Button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical"/> 

    </LinearLayout> 
</LinearLayout> 

之所以這樣做是一個水平LinearLayout中只注重垂直layout_gravity值和垂直的LinearLayout只注重水平layout_gravity值。

+0

歡迎來到我猜想的相對佈局世界。我將不得不閱讀他們之間的差異。感謝您及時的回覆。 – 2011-12-19 02:42:33

相關問題