首页 > 代码库 > Android ImageButton单击切换按钮图片效果

Android ImageButton单击切换按钮图片效果

正常状态的效果:

技术分享

按钮按下的效果图片:

技术分享

一、在java中为图片按钮增加触摸监听的函数来实现图片切换,代码如下:

        ImageButton btn = (ImageButton)findViewById(R.id.imageButton1);                btn.setOnTouchListener(new View.OnTouchListener(){                        public boolean onTouch(View v, MotionEvent event) {                                    if(event.getAction() == MotionEvent.ACTION_DOWN){                            //重新设置按下时的背景图片                       ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn_pressed));                                                }else if(event.getAction() == MotionEvent.ACTION_UP){                             //再修改为抬起时的正常图片                        ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn));                       }                    return false;                 }             });

代码比较简单,就是当图片按下时,修改按钮的背景图片,当抬起时再修改为正常的图片显示。

二、通过给按钮配置XML文件来实现图片按钮的背景切换效果,方法如下:

1) 在Layout下增加一个image_btn_press.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">      <item android:state_pressed="false" android:drawable="@drawable/android_btn" />     <item android:state_focused="true" android:drawable="@drawable/android_btn" />     <item android:state_pressed="true" android:drawable="@drawable/android_btn_pressed" /> </selector> 

在main.xml中设置图片按钮的属性:

    <ImageButton        android:id="@+id/imageButton2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@layout/image_btn_press" />

在ImageButtonk中指定background的属性值:@layout/image_btn_press,其中image_btn_press 就是上面为该图片铵钮创建的XML配置文件。同时,你也可以将image_btn_press.xml文件放到drawable的目录 下,此时,就要将它的属性值修改为:@drawable/image_btn_press即可,也就是说指定它的XML文件的正确路经就行了。

另外,需要特别注意的是在ImageButton中,如果使用XML配置文件来设置图片的效果的话,就不要再指定它的android:src=""属性值了,否则图片的按下效果就出不来了。

Android ImageButton单击切换按钮图片效果