按钮文本没有在按钮中垂直居中

Posted

技术标签:

【中文标题】按钮文本没有在按钮中垂直居中【英文标题】:button text not getting centered vertically in button 【发布时间】:2011-12-16 20:20:02 【问题描述】:

我正在创建一个 android 应用程序,并且我有一个按钮,其背后有一个自定义背景图像。背景图像只是一个矩形,但现在按钮文本似乎没有垂直居中。这是我的按钮 xml:

<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_
android:layout_
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"></Button>

我在这里设置背景:

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

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

【问题讨论】:

【参考方案1】:

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

<Button 
    ...
    android:gravity="center"
    ...>
</Button>

【讨论】:

另外,可以添加includeFontPadding = false 来移除字体特定的填充【参考方案2】:

您的按钮太短,无法正确容纳文本。增加layout_height,文字应该居中。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于按钮文本没有在按钮中垂直居中的主要内容,如果未能解决你的问题,请参考以下文章

按钮文本在本机反应中未垂直居中对齐

WPF 按钮中的文本内容未垂直居中

如何在 SwiftUI 中垂直居中纯文本 TabBar 按钮?

如何垂直居中 UITextField 文本?

内联块中的垂直居中文本

表格中的文字怎样垂直居中