2013-10-22 72 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>