关于android:button文本不会在按钮中垂直居中

button text not getting centered vertically in button

我正在创建一个Android应用,后面有一个带有自定义背景图片的按钮。 背景图像只是一个矩形,但是现在按钮文本似乎不再垂直居中。 这是我的按钮的xml:

1
2
3
4
5
6
7
8
9
10
11
<Button
android:id="@+id/save_to_list"
android:layout_below="@+id/info_pic"
android:text="SAVE TO LIST"
android:textColor="@android:color/white"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_width="260dp"
android:layout_height="35dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"></Button>

我在这里设置背景:

1
2
ImageView button_bg = (ImageView)findViewById(R.id.button_background);
savetolist_button.setBackgroundDrawable(button_bg.getDrawable());

在哪里可以更改按钮内文本的位置?


android:layout_gravity在其父级内部定义布局对齐方式。 要在按钮内对齐文本,例如,您需要android:gravity

1
2
3
4
5
<Button
    ...
    android:gravity="center"
    ...>
</Button>

您的按钮太短,无法正确显示文本。 增加layout_height,文本应居中。


您的文本可能会在每个字母的字体中内置一些填充,这就是为什么将文本推向一个方向的原因。 将layout_height设置为" wrap_content",您的文本现在应该正确居中。


我发现最好将9补丁图像用于矩形背景而不是xml可绘制图像。