在进行UI设计时为了美观,可以自定义Button按钮的外观。比如自定义图片作为按钮的背景,直接将图片复制到项目的res/drawable/路径下,然后在xml文件中使用android:background进行定义即可。若想要在不同的状态下呈现不同的背景样式,则处理方法如下:
(1) 在res/drawable/ 目录下新建一个xml文件命名为android_button.xml.
(2) 在该文件中编写如下代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/android_focused"
android:state_focused="true" />
<item android:drawable="@drawable/android_normal" />
</selector>
这就相当于定义了一个单独的样式文件,每个item中包含按钮的背景图片和所处的状态,根据状态按钮呈现出不同的背景。当按钮被按下,也就是state_pressed为true时按钮的背景图片为drawable文件夹下的android_pressed.png文件。
(3) 在使用Button的Activity所对应的xml文件中,使用android:background声明该样式,指定使用drawable文件夹下的android_button.xml文件。
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@drawable/android_button"/>