2012-07-30 35 views
0

我的按钮中的文字有问题。当应用程序在大屏幕的移动设备上运行时,一切都很好。为了在小屏幕上看到所有组件,我在按钮和其他组件上设置了重量。按钮后压缩的文字是不是在中心,但按钮将按钮中的文字居中

XML文件(我猜压缩剪切垂直尺寸从底部。):

 <LinearLayout 
      android:id="@+id/layout_image" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_gravity="center" 
      android:layout_weight="1" 
      android:background="@drawable/word_milk" 
      android:gravity="center" 
      android:orientation="vertical" 
      android:visibility="visible" > 

      <ImageView 
       android:id="@+id/iv_cross" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/cross_small" 
       android:visibility="invisible" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/layout_buttons" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:gravity="center_vertical" 
      android:orientation="vertical" 
      android:visibility="visible" > 

      <Button 
       android:id="@+id/b1" 
       android:layout_width="fill_parent" 
       android:layout_height="0dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="11dp" 
       android:layout_weight="1" 
       android:background="@drawable/shape_swarthy_green" 
       android:gravity="center" 
       android:maxHeight="45dp" 
       android:onClick="B1Click" 
       android:textColor="@color/Color_White" 
       android:textSize="@dimen/TextSize_word" /> 

      <Button 
       android:id="@+id/b2" 
       android:layout_width="fill_parent" 
       android:layout_height="0dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="11dp" 
       android:layout_weight="1" 
       android:background="@drawable/shape_swarthy_green" 
       android:gravity="center" 
       android:maxHeight="45dp" 
       android:onClick="B2Click" 
       android:textColor="@color/Color_White" 
       android:textSize="@dimen/TextSize_word" /> 

      <Button 
       android:id="@+id/b3" 
       android:layout_width="fill_parent" 
       android:layout_height="0dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="11dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="11dp" 
       android:layout_weight="1" 
       android:background="@drawable/shape_swarthy_green" 
       android:gravity="center" 
       android:maxHeight="45dp" 
       android:onClick="B3Click" 
       android:textColor="@color/Color_White" 
       android:textSize="@dimen/TextSize_word" /> 
     </LinearLayout> 
    </LinearLayout> 

截图:我设置文字大小24sp的第一个按钮,26sp第二,28sp thirth与文本“llllll”为更好的ilustration的行为。

enter image description here

谢谢你的帮助。

+2

你可以用你的xml代码更新这个问题,以便我们可以找出问题所在。 – vinaykumar 2012-07-30 14:36:15

+0

也将很好的截图,看看问题本身。 – 2012-07-30 15:01:26

回答

0

我的猜测是你没有改变文本大小,所以在其他设备上文本试图适合按钮,但它不能,因为按钮太小。如果是这种情况,请根据屏幕为文本大小设置不同的尺寸。

但是,由于这里没有代码或屏幕截图,因此我无法确定是否属于这种情况。

+0

我不会发生这种情况。我已更新问题。 – vlkpo 2012-07-31 06:35:50

+0

好吧,我看了一下xml,发现:1.忘记将LinearLayout的子项的高度设置为0px(因为它们有重量)。 2.您基于屏幕设置文字大小,但没有以相同方式处理边距。 – 2012-07-31 07:33:51

+0

谢谢我改变了它,但结果是一样的。你的第二点是合理的,我会重拍它,但它与按钮文字位置没有任何关系。 – vlkpo 2012-07-31 08:36:39

0

与填充尝试希望此举能为你工作...

<Button 
      android:id="@+id/b2" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_gravity="center" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="11dp" 
      android:layout_weight="1" 
      android:background="@drawable/shape_swarthy_green" 
      android:gravity="center" 
      android:maxHeight="45dp" 
      android:onClick="B2Click" 
      android:textColor="@color/Color_White" 
      android:textSize="@dimen/TextSize_word" 

      // add padding here 

      android:paddingTop="10dip" 
      android:paddingBottom="10dip"     


/> 
+0

它向下移动文本并剪切底部边距,以便文本没有下降的部分。 – vlkpo 2012-07-31 10:01:48

1

设置按钮属性安卓重力=“中心” 集属性转换成Java文件还btn.setGravity(Gravity.CENTER);

+0

android:gravity =“center”已经存在,并且在向java添加代码之后 - 没有变化。 – vlkpo 2012-07-31 11:36:30