2012-11-22 60 views
1

我有一個尺寸相同的按鈕的XML網格表格佈局菜單,按鈕的大小取決於手機的分辨率。這個想法是讓菜單用相同大小的按鈕填充屏幕。當按鈕沒有文本標籤時,這可以很好地工作。但只要我在按鈕上添加文本,那麼按鈕的寬度也會受到文本的影響。如果我將文本大小更改爲較小的大小,則該按鈕會自動重新調整大小以使其小於其他大小。例如:按鈕A的名稱是「首頁」按鈕B的名稱是「通知」 我的問題是,按鈕B變得比按鈕A更大,我希望所有按鈕具有相同的寬度,而不管標籤文本大小是多少。 我也將附加XML佈局。Android ::如何在不更改按鈕大小的情況下更改字體大小?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="4dp" 
    android:background="#2b2c31" 
    android:orientation="vertical" > 

    <include 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     layout="@layout/layout_topheader" /> 


     <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="10dp" 
      android:stretchColumns="*" > 

       <TableRow 
      android:layout_weight="1" 
      android:gravity="center" 
      android:padding="10dp" > 

        <Button 
         android:id="@+id/buttonScan" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/btn" 
         android:text="Refill"        
         android:layout_margin="10dp" 
         android:textColor="@color/status_text" 
         android:textSize="30dip" 
         android:textStyle="bold" /> 

        <Button 
         android:id="@+id/buttonSetReminder" 
         android:layout_width="fill_parent"        
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/btn" 
         android:text="Reminders"       
         android:layout_margin="10dp" 
         android:textColor="@color/status_text" 
         android:textSize="30dip" 
         android:textStyle="bold" /> 

       </TableRow> 

       <TableRow 
      android:layout_weight="1" 
      android:gravity="center" 
      android:padding="10dp" > 

        <Button 
         android:id="@+id/buttonRewards" 
         android:layout_width="fill_parent"        
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/btn" 

         android:layout_margin="10dp" 
         android:textSize="30dip" 
         android:textColorHint="@color/status_text" 
         android:textColor="@color/status_text" 
         android:text="Rewards" 
         android:textStyle="bold" /> 

        <Button 
         android:id="@+id/buttonTracker" 
         android:layout_width="fill_parent"        
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/btn" 
         android:text=" Tracker" 

         android:layout_margin="10dp" 
         android:textColor="@color/status_text" 
         android:textSize="30dip" 
         android:textStyle="bold" /> 

       </TableRow> 

       <TableRow 
        android:layout_weight="1" 
        android:gravity="center" 
        android:padding="10dp" > 

        <Button 
         android:id="@+id/buttonProfile" 
         android:layout_width="fill_parent"        
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/btn" 
         android:text="Profile"       
         android:layout_margin="10dp" 
         android:textColor="@color/status_text" 
         android:textSize="30dip" 
         android:textStyle="bold" /> 

        <Button 
         android:id="@+id/buttonChat" 
         android:layout_width="fill_parent"        
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:background="@drawable/chaticon" 
         android:text="Chat"       
         android:layout_margin="10dp" 
         android:textColor="@color/status_text" 
         android:textSize="30dip" 
         android:textStyle="bold" /> 

       </TableRow> 

        <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#ffffff" 
      android:orientation="vertical" > 


       <ImageView 
        android:id="@+id/imageView1" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:src="@drawable/add3" /> 

     </LinearLayout>      

    </TableLayout>   

</LinearLayout> 

回答

0

不知道它是做的最好的辦法,但我也有類似的問題,並通過讓在運行時的屏幕尺寸與解決它:

DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 

然後設置按鈕寬度as: int buttonWidth = displaymetrics.widthPixels/2;

最後將最大和最小寬度/高度設置爲buttonWidth

相關問題