ImageButton继承于ImageView,顾名思义,它是将一张图片来作为一个可供点击的按钮。
1.主要属性
(1)可以用其android:src属性或者setImageResource(int sourceId)方法来指定所使用的图片。
(2)可以用setAlpha(int alpha)设置ImageButton图片的透明度(注意不是背景图片的)。alpha 透明值0~255,0为完全透明,255为完全不透明。
2.设置不同状态的显示
为了表示不同的按钮状态,我们通常通过selector(选择器)为ImageButton定义各种状态下的不同图片。下面是Android API中一个示例:
保存上面的XML内容到res/drawable/文件夹下,命名为image_button_selector.xml,并将该文件名作为一个参数“@drawable/image_button_selector”设置到ImageButton的 android:src属性。
注意:
(1)state_pressed、state_focused代表ImageButton被按下去、获取到焦点时的状态。
(2)item元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。
*应用技巧
1.图片按钮被点击时的按下效果
可以通过设置图片的透明度达到显示点击时的按下效果。
1.主要属性
(1)可以用其android:src属性或者setImageResource(int sourceId)方法来指定所使用的图片。
(2)可以用setAlpha(int alpha)设置ImageButton图片的透明度(注意不是背景图片的)。alpha 透明值0~255,0为完全透明,255为完全不透明。
2.设置不同状态的显示
为了表示不同的按钮状态,我们通常通过selector(选择器)为ImageButton定义各种状态下的不同图片。下面是Android API中一个示例:
<?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/button_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
保存上面的XML内容到res/drawable/文件夹下,命名为image_button_selector.xml,并将该文件名作为一个参数“@drawable/image_button_selector”设置到ImageButton的 android:src属性。
注意:
(1)state_pressed、state_focused代表ImageButton被按下去、获取到焦点时的状态。
(2)item元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。
*应用技巧
1.图片按钮被点击时的按下效果
可以通过设置图片的透明度达到显示点击时的按下效果。
imageButton.setOnTouchListener(new View.OnTouchListener()){
public boolean onTouch(View v,MotionEvent event){
if(event.getAction()==MotionEvent.ACTION_DOWN){
imageButton.getDrawable().setAlpha(150);
imageButton.invalidate(); //重绘按钮
} else {
imageButton.getDrawable().setAlpha(255)
imageButton.invalidate();
}
return false;
}
}