2011-12-22 63 views
0

我想改變我的按鈕在運行時的大小,以使他們適應屏幕好 - 因此,爲了設置按鈕的寬度,我做的 -Android中按鈕的最小高度是否有硬限制?

int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); 
int buttonWidth = (screenWidth*2)/3; 

然後在每個按鈕上循環調用.setWidth(buttonWidth);

我想以相同的方式改變高度,但是當我在模擬器上運行我的應用程序時,高度不會改變,除非我將其設置爲較大的值。

int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); 
int buttonHeight = (screenHeight-60)/14; 

我在同一個循環中使用.setHeight(buttonHeight);,但它似乎並沒有做任何事情,除非值是非常大的。我試着減小文字的大小或最小高度,但這似乎沒有效果。

+0

澄清 - 改變按鈕的寬度是否正常工作。 – Eilidh 2011-12-22 18:58:26

+0

您使用的是什麼佈局? – Kerry 2011-12-22 20:55:00

+0

LinearLayout,對不起。 我能夠在XML文件中手動將其設置爲更小,但仍然無法在運行時動態設置它。 – Eilidh 2011-12-22 21:13:02

回答

0

嗯 - 我不知道爲什麼setHeight工作不正常,但有更好的方法可以處理整個尺寸問題。

對於寬度,如果你想要一個按鈕來填充屏幕寬度的三分之二,那麼你應該在一個水平的LinearLayout中嵌套它,創建一個空白的視圖,你的Button和另一個空白視圖,所有fill_parent寬度和設置像這樣的layout_weight:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 
    <LinearLayout android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal"> 
      <View android:layout_height="wrap_content" 
       android:layout_width="fill_parent" 
       android:layout_weight="2"/> 
      <Button android:layout_height="wrap_content" 
       android:layout_width="fill_parent" 
       android:layout_weight="1" 
       android:text="Button" 
       android:id="@+id/button"/> 
      <View android:layout_height="wrap_content" 
       android:layout_width="fill_parent" 
       android:layout_weight="2"/> 
    </LinearLayout> 
</LinearLayout> 

就個人而言,我更喜歡上述過Java代碼修改佈局。雖然我還沒有嘗試過,但我相信你也可以在高度上做同樣的事情,但是你會有一個垂直佈局,而高度爲fill_parent

0

是的。根據我的經驗,即使在XML中,也不能將Button的高度降低到某個值以外,除非您還設置了minHeight = 0。

相關問題