zoukankan      html  css  js  c++  java
  • 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=""属性值了,否则图片的按下效果就出不来了。

    设置按钮不可按状态:ImageButton.Attributes.Add("onclick","return false");

  • 相关阅读:
    Jzoj3555 树的直径
    Jzoj3555 树的直径
    51Nod1022 石子归并V2
    51Nod1022 石子归并V2
    Bzoj3998 弦论
    Bzoj3998 弦论
    Poj2758 Checking the Text
    Poj2758 Checking the Text
    常用SQL语句大全
    Silverlight调用GP服务第二篇之调用GP服务(Geoprocessing Service)过程详解
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4211471.html
Copyright © 2011-2022 走看看