我有一个简单的按钮,背景图像定义如下:
android:background="?attr/button"
?attr/button
是对一个简单的9-patch png文件的引用。一切都正常,按钮中的文本对齐正确。
后来,我需要为按下状态的按钮设置不同的背景。所以我做了以下更改:
android:background="@drawable/state_button"
其中@drawable/state_button
是一个包含以下状态的XML文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_pressed" /> <!-- focused -->
<item android:drawable="@drawable/button" /> <!-- default -->
</selector>
之后我无法正确对齐文本。如果我加入 android:gravity="center_vertical"
,文本将从按钮顶部绘制约1/4的高度。
我已经仔细检查了我的9-patch图像,一切似乎都没问题。我还尝试使用常规png作为背景,但也没有改变任何东西。