我的问题非常简单。 如何将文本放在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);
结果是垂直对齐不良。
答案 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" />
这对我有用