按钮可以通过background属性为按钮增加背景色或背景图片,但这种设置是固定的,不能通过事件和代码进行更改。
定义可以随用户动作而改变的按钮,可以使用XML资源文件来定义Drawable对象,再将Drawable对象设为Button的background属性值,或ImageButton的src属性值。
自定义图片按钮: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/leaf"></item>
- <item android:state_pressed="false"
- android:drawable="@drawable/ic_launcher"></item>
- </selector>
布局文件:
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TableRow >
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/leaf"
- android:text="普通的按钮"
- />
- <ImageButton
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/leaf"/>
- </TableRow>
- <TableRow >
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/button"
- android:text="图片背景的普通按钮"/>
- <ImageButton
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/button"/>
- </TableRow>
- </TableLayout>