中心文本android按钮

问题描述 投票:23回答:5

我的问题很简单。如何将文本放在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);

结果是错误的垂直对齐。

android gravity
5个回答
18
投票

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


36
投票

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

android:textAlignment="center"

1
投票

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


0
投票

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


-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" />

这对我有用

© www.soinside.com 2019 - 2024. All rights reserved.