首页 > 代码库 > ImageButton介绍及两种透明方案
ImageButton介绍及两种透明方案
java.lang.Object
android.view.View
android.widget.ImageView
android.widget.ImageButton
直接子类:
ZoomButton
类摘要:
显示一个可以被用户点击的图片按钮,默认情况下,ImageButton看起来像一个普通的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过<ImageButton> XML元素的android:src属性或setImageResource(int)方法指定。
要删除按钮的背景,可以定义自己的背景图片或设置背景为透明。(注:请看原图和图片按钮,默认图片周围有按钮的背景,选中之后为黄色)
注意:定义背景为透明的方案是:
第一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"
第二种方法就是将ImageButton背景改为透明,这个方法更常用
在XML里;
<ImageButton android:background="#00000000" .../>
注解:颜色和不透明度 (alpha)值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00ff)。对于 alpha,00 表示完全透明,ff表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。半透明则为
"#e0000000"。例如,如果您希望对某叠加层应用不透明度为 50%的蓝色,则应指定以下值:7fff0000
在代码里:
设置背景图片透明度(超简单)
View v =findViewById(R.id.content);//找到你要设透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值
为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时显示的图片。一个简单的方法可以做到这点——通过XML的"selector."配置,如下:
保存上面的XML到res/drawable/
文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton的 android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。
<item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。)
参见Form Stuff tutorial。
继承自父类的方法
public void setAlpha (int alpha)
设置ImageButton图片的透明度(注意不是背景图片的)。效果如图:
参数
alpha 透明值0~255,0为完全透明,255为完全不透明
ImageButton介绍及两种透明方案