2013-10-22 74 views
-1

我已經開發了一個應用程序,以下是代碼「圖像」和按鈕的「文本」之間的差距太大

這是這個程序

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".HomeScreen" > 

    <TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:stretchColumns="*" 
     android:weightSum="4" > 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/cBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/cStr" /> 

      <Button 
       android:id="@+id/aBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/aStr" /> 

      <Button 
       android:id="@+id/lBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/lStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/oBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/oStr" /> 

      <Button 
       android:id="@+id/tBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/tStr" /> 

      <Button 
       android:id="@+id/eBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/eStr" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow4" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" > 

      <Button 
       android:id="@+id/dBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/dStr" /> 

      <Button 
       android:id="@+id/hBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/hStr" /> 

      <Button 
       android:id="@+id/aaBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight=".3" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/aStr" /> 
     </TableRow> 
    </TableLayout> 

</RelativeLayout> 

串的代碼。 xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="fStr">Fffffffff</string> 
<string name="rStr">Rrrrrr</string> 
<string name="sStr">Ssssss  </string> 
<string name="lStr">Lllll</string> 
<string name="oStr">Oooooooooooo</string> 
<string name="tStr">Ttttt</string> 
<string name="eStr">Eeeeee</string> 
<string name="dStr">Dddddddddd</string> 
<string name="cStr">Cccccccc</string> 
<string name="hStr">Hhhh</string> 
<string name="aStr">Aaaaaaaaaa aaaa</string> 

</resources> 

這個程序有一個問題。

  1. 按鈕圖像和文字之間的差距太大,特別是在5.1 WVGA屏幕上。它在我的手機相同的外觀,它具有爲4.5英寸

屏幕尺寸以下是圖像

enter image description here

我怎樣才能解決這個問題呢?

+0

我之前有過這個問題,我修正它的方式是爲每個項目設置一個sperate imageview和textview,並將其包裝在一個佈局中(Linear爲我),並將onclick事件放在佈局上。還有一個可繪製的padding attr,它可能也有幫助 –

+0

@TomHart:可繪製填充不起作用。 –

+0

是的,它也不適合我,這就是爲什麼我需要爲每個按鈕分別設計佈局。 –

回答

0

也許使用LinearLayout;

![<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".HomeScreen" > 

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

     <LinearLayout 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="0.33" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="0.33" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="0.33" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="0.33" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/fBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/fStr" /> 

      <Button 
       android:id="@+id/rBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/rStr" /> 

      <Button 
       android:id="@+id/sBtn" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:drawableTop="@drawable/ic_launcher" 
       android:layout_weight="0.33" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/sStr" /> 
     </LinearLayout> 
    </LinearLayout> 

</RelativeLayout> 

enter image description here

0

下面是修改後的版本,這將減少按鈕的大小,並將它們置於其行內,並擺脫無用的RelativeLayout父項(正如Lint可能指出的那樣):

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:stretchColumns="*" 
    android:weightSum="4" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".HomeScreen"> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/fBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/rBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/sBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/cBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/aBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/lBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow3" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/oBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/tBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/eBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow4" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:id="@+id/dBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/hBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_gravity="center_vertical" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 

     <Button 
      android:id="@+id/aaBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/ic_launcher" 
      android:layout_weight=".3" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="bla" /> 
    </TableRow> 
</TableLayout>