中心文本android按钮

时间:2012-06-11 10:39:00

标签: android gravity

我的问题非常简单。 如何将文本放在android中的按钮中心? 我试图将填充设置为0,将重力设置为居中,但是当我运行它时结果仍然是文本是水平居中但不是垂直的。文字有点转移到底部。

<Button
    android:id="@+id/btnSame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="10dip"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip"
    android:background="@drawable/layout_button_different"
    android:gravity="center_vertical|center_horizontal"
    android:height="30dp"
    android:padding="0dip"
    android:text="@string/equals"
    android:textColor="@drawable/layout_button_different"
    android:textSize="50dp"
    android:width="70dp" />

我也很相关: 在活动中我这样做:

btnEquals.setCompoundDrawablesWithIntrinsicBounds(null,getResources().getDrawable(R.drawable.up2), null, null);
btnEquals.setPadding(0, 5, 0, 0);
btnEquals.setTextSize(15);

这可行,但在此之后我设置了这个:

btnEquals.setCompoundDrawables(null, null, null, null);
btnEquals.setPadding(0, 0, 0, 0);

结果是垂直对齐不良。

7 个答案:

答案 0 :(得分:35)

这很简单,你可以这样说:

android:textAlignment="center"

答案 1 :(得分:17)

由于您选择的尺寸,您现有的布局无法使文本居中。您已将按钮高度设置为30dp,而textSize为50dp,无论出于何种原因,Android都无法处理该文本并使文本居中。如果您将按钮放大或文字较小,您会看到居中工作。

答案 2 :(得分:1)

有三个系统需要考虑。 xml布局设计器,模拟器和真实手机。如果指定gravity =“center”,则按钮中的文本将如下所示。 在xml布局设计器中,它看起来最左边的字母位于按钮的中心,但其余字母位于右侧。 (看起来不正确) 在模拟器中,文本显示在中心。 (正确) 在手机中,文字显示在中心。 (正确的)

答案 3 :(得分:1)

您只需将 layout_height 设置为 wrap_content 并根据您想要的任何值改变 padding 属性

答案 4 :(得分:0)

您还可以在setPadding中使用负数。如果您的字体很大且按钮很小,这可能会有所帮助。如果仍然偏离中心,请尝试将顶部或底部设置为更负数。

答案 5 :(得分:0)

您只需在布局xml代码中将此行添加到Button中即可:

android:gravity="center"

答案 6 :(得分:-3)

<Button
                android:id="@+id/AnswerE"
                style="@style/defaultbuttonstyle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:onClick="AnswerCheck"
                android:text=" E "
                android:textStyle="bold" />

这对我有用