2011-05-28 91 views
0

我有這個xml文檔。我想要這93個93像素的按鈕圖像等距。目前,體重的設置使他們伸展並彼此擁抱,所以沒有空間。但是,如果我將體重設置爲0,他們會相互擁抱,但會填滿屏幕的大約一半。等間距固定大小按鈕Android

這是爲了橫向的方式。

<LinearLayout android:id="@+id/LinearLayout" android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 
    <Button 
    android:background="@drawable/a" 
    android:layout_height="93px" 
    android:id="@+id/a" 
    android:layout_width="93px" 
    android:layout_weight="1" 
    android:layout_marginLeft="20dip" 
    android:layout_marginTop="30dip"/> 
    <Button 
    android:background="@drawable/b" 
    android:layout_height="93px" 
    android:id="@+id/b" 
    android:layout_width="93px" 
    android:layout_weight="1" 
    android:layout_marginTop="30dip"/> 

    <Button 
    android:background="@drawable/c" 
    android:layout_height="93px" 
    android:id="@+id/c" 
    android:layout_weight="1" 
    android:layout_width="93px" 
    android:layout_marginTop="30dip"/> 
    <Button 
    android:background="@drawable/d" 
    android:layout_height="93px" 
    android:id="@+id/d" 
    android:layout_width="93px" 
    android:layout_weight="1" 
    android:layout_marginRight="20dip" 
    android:layout_marginTop="30dip" /> 
    </LinearLayout> 

一個

回答

1

LinearLayout不具有 「相等的間隔」 的固有概念。您可能會考慮使用專爲「儀表板」設計的佈局,例如https://gist.github.com/882650

+0

感謝那些看起來很完美,這和其他佈局的問題,我有。如果你可以花一分鐘來簡單地解釋如何實現這將是偉大的。一旦我將該文件放入我的apk中,我應該從那裏做什麼? – Somk 2011-05-28 12:17:42

+1

@Max:請參閱http://code.google.com/p/iosched/source/browse/android/res/layout/fragment_dashboard.xml – CommonsWare 2011-05-28 12:23:11

+0

您發給我的第一個鏈接我應該保存爲com.google.android。 apps.iosched.ui.widget與我的所有其他軟件包在scr下正確嗎? – Somk 2011-05-28 15:06:41

4

解決方案很簡單。

你必須保持每個按鈕進入單獨的線性佈局,並保持每個線性佈局的權重= 1。現在,無論分辨率或方向如何,按鈕的間距都是相等的。

EX: -

 <LinearLayout android:id="@+id/LinearLayout" android:layout_height="wrap_content" 
     android:layout_width="fill_parent"> 
     <LinearLayout android:[email protected]+id/Button1Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center"> 
     <Button 
     android:background="@drawable/a" 
     android:layout_height="93px" 
     android:id="@+id/takequiz" 
     android:layout_width="93px" 
     android:layout_weight="1" 
     android:layout_marginLeft="20dip" 
     android:layout_marginTop="30dip"/> 
</LinearLayout> 
<LinearLayout android:[email protected]+id/Button2Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center"> 
     <Button 
     android:background="@drawable/b" 
     android:layout_height="93px" 
     android:id="@+id/random" 
     android:layout_width="93px" 
     android:layout_weight="1" 
     android:layout_marginTop="30dip"/> 
</LinearLayout> 
<LinearLayout android:[email protected]+id/Button3Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center"> 

     <Button 
     android:background="@drawable/c" 
     android:layout_height="93px" 
     android:id="@+id/search" 
     android:layout_weight="1" 
     android:layout_width="93px" 
     android:layout_marginTop="30dip"/> 
</LinearLayout> 
<LinearLayout android:[email protected]+id/Button4Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center"> 

     <Button 
     android:background="@drawable/d" 
     android:layout_height="93px" 
     android:id="@+id/browse" 
     android:layout_width="93px" 
     android:layout_weight="1" 
     android:layout_marginRight="20dip" 
     android:layout_marginTop="30dip" /> 
     </LinearLayout> 
</LinearLayout> 
0

我試着更新您當前的LinearLayout以下,不得不廣場均勻分佈的按鈕 - 但他們不適合我模擬器的屏幕上。所以在我的情況下,你已經設置在左右兩側的邊緣將它們壓扁。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout" 
    android:layout_height ="wrap_content" 
    android:layout_width ="fill_parent" 
    android:orientation ="horizontal" 
    android:layout_gravity="center_horizontal"> 

    <Button 
    android:id="@+id/takequiz" 
    android:text="take quiz" 
    android:layout_height="93px" 
    android:layout_width ="93px" 
    android:layout_marginTop ="30dip"/> 

    <Button 
    android:id="@+id/random" 
    android:text="random" 
    android:layout_height="93px" 
    android:layout_width ="93px" 
    android:layout_marginTop="30dip"/> 

    <Button 
    android:id="@+id/search" 
    android:text="search" 
    android:layout_height="93px" 
    android:layout_width="93px" 
    android:layout_marginTop="30dip"/> 

    <Button 
    android:id="@+id/browse" 
    android:text="browse" 
    android:layout_height="93px" 
    android:layout_width="93px" 
    android:layout_marginTop="30dip" /> 

</LinearLayout> 

你是否考慮過2行?我使用TableLayout爲聲卡類型的應用程序做了類似的事情。儘管現在我傾向於使用RelativeLayout。這是表格代碼。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout" 
    android:layout_height ="fill_parent" 
    android:layout_width ="fill_parent" > 
    <TableRow 
     android:layout_height ="wrap_content" 
     android:layout_width ="fill_parent" 
     android:gravity  ="center">  
     <Button 
     android:id ="@+id/takequiz" 
     android:text="take quiz" 
     android:layout_height="93px" 
     android:layout_width ="93px" />  
     <Button 
     android:id ="@+id/random" 
     android:text="random" 
     android:layout_height="93px" 
     android:layout_width ="93px" /> 
    </TableRow> 
    <TableRow 
     android:layout_height ="wrap_content" 
     android:layout_width ="fill_parent" 
     android:gravity  ="center">  
     <Button 
      android:id ="@+id/search" 
      android:text="search" 
      android:layout_height="93px" 
      android:layout_width ="93px" />  
     <Button 
      android:id ="@+id/browse" 
      android:text="browse" 
      android:layout_height="93px" 
      android:layout_width ="93px" /> 
    </TableRow> 
</TableLayout> 
+0

它不適合你的屏幕?你用什麼尺碼?你在風景園林裏嗎?如果是這樣,我可能需要重新考慮佈局。 – Somk 2011-05-28 15:05:37

+0

@Max,它是2.7in QVGA – bursk 2011-05-28 18:25:13

0

只需設置留下了保證金或者保證金右按鈕

2

試試這個的任何1:

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:background="#000000" 
     android:id="@+id/linearLayout01" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
    > 
     <Button 
      android:layout_width="0dp" 
      android:id="@+id/btn1" 
      android:layout_height="93px" 
      android:layout_weight="1" 
      android:layout_marginRight="5dp" 
     ></Button> 
     <Button 
      android:layout_width="0dp" 
      android:id="@+id/btn2" 
      android:layout_height="93px" 
      android:layout_weight="1" 
      android:layout_marginRight="5dp" 
     ></Button> 
     <Button 
      android:layout_width="0dp" 
      android:id="@+id/btn3" 
      android:layout_height="93px" 
      android:layout_weight="1" 
      android:layout_marginRight="5dp" 
     ></Button> 
     <Button 
      android:layout_width="0dp" 
      android:id="@+id/btn4" 
      android:layout_height="93px" 
      android:layout_weight="1" 
     ></Button> 
    </LinearLayout>