你可以尝试这样的事情:
首先,为 res/drawable/ 文件夹中的按钮创建一个选择器(我们称之为 selector_button.xml):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/image_resource_for_button_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/image_resource_for_button_pressed"
android:state_focused="true" />
<item android:drawable="@drawable/image_resource_for_button_normal" />
</selector>
在这里,您可以定义 as 而android:drawable
不仅仅是@drawable
's,还可以定义@color
's 或@layout
's。如果你想要一个更复杂的布局,你应该定义一个按钮的背景图像和另一个图像在它上面使用RelativeLayout
例如。
为此,您必须在 res/drawable/ 文件夹中有image_resource_for_button_pressed.png
(对于按下和聚焦状态)和image_resource_for_button_normal.png
(对于正常状态)。
之后,您创建一个按钮,如下所示:
<Button
android:id="@+id/aButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector_button"
android:text="Hardcoded string" />
这种方法可以帮助您保持代码的可读性,因为您只是将图像资源的更改提取到一个 .xml 文件中。