ImageView及其子类(二)
实例:强大的图片按钮
下面的实例定义了多个图片按钮,并定义了两个ZoomButton。两个ZoomButton的android:src属性分别指定为@android:drawable/btn_minus、@android:drawable/btn_plus,这样可以定义缩小和放大两个按钮。
下面是该实例的界面布局文件。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 普通图片按钮 --> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/blue"/> <!-- 按下时显示不同的按钮 --> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/button_selector" /> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10sp" android:layout_gravity="center_horizontal"> <!-- 分别定义2个ZoomButton,并分别使用btn_munus和btn_plus图片 --> <ZoomButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_zoom_down" android:src="@android:drawable/btn_minus" /> <ZoomButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_zoom_up" android:src="@android:drawable/btn_plus"/> </LinearLayout> <!-- 定义ZoomControls组件 --> <ZoomControls android:id="@+id/zoomControls1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> </LinearLayout>
<?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/red"/> <!-- 指定按钮松开时的图片 --> <item android:state_pressed="false" android:drawable="@drawable/purple" /> </selector>
上面布局文件的开头定义了两个ImageButton,第一个ImageButton的android:src指定为一张静态图片,这样无论用户有怎样的行为,该ImageButton总显示这张静态图片。第二个ImageBUtton的android:src指定为@drawable/button_selector,该Drawable组合了两张图片,可以保证用户单击该按钮时切换图片。
运行界面如下图: