首页 > 代码库 > 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介绍及两种透明方案