我的问题很简单。如何将文本放在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);
结果是错误的垂直对齐。
由于您选择的尺寸,您现有的布局无法使文本居中。您已将按钮高度设置为30dp
,而textSize则为50dp
,无论出于何种原因,Android无法处理该文本并使文本居中。如果您将按钮放大或文字较小,您会看到居中工作。
这很简单,你可以这样说:
android:textAlignment="center"
有三个系统需要考虑。 xml布局设计器,模拟器和真实手机。如果指定gravity =“center”,则按钮中的文本将如下所示。在xml布局设计器中,它看起来最左边的字母位于按钮的中心,但其余字母位于右侧。 (看起来不正确)在模拟器中,文本显示在中心。 (正确)在手机中,文字显示在中心。 (正确)
您还可以在setPadding中使用负数。如果您的字体很大且按钮很小,这可能会有所帮助。如果仍然偏离中心,请尝试将顶部或底部设置为更负数。
<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" />
这对我有用