显示一个可以被用户点击的图片按钮,默认情况下,
ImageButton
看起来像一个普通的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过
<ImageButton> XML
元素的
android:src
属性或
setImageResource(int)
方法指定。
为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时显示的图片。一个简单的方法可以做到这点——通过XML的"selector."配置,如下:
保存上面的XML到res/drawable/
文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton的 android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。
<item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ImageButton"/>
<ImageButton
android:id="@+id/image1"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:src= "@drawable/macos01"/>
</LinearLayout>
点击后