ImageButton单击切换按钮图片

有时单击ImageButton图片按钮时需要获取变换图片的效果,在这里介绍两种方法仅供参考

正常显示

点击切换

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

在layout或者是drawable文件下添加一个imagebtn_select.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/img_smile"/>
    <item android:state_focused="true" android:drawable="@drawable/img_happy"/>
    <item android:state_pressed="true" android:drawable="@drawable/img_love"/>
</selector>

其中的

<item android:state_focused="true" android:drawable="@drawable/img_happy"/>

是设置按钮被按下时的图片选择,和

<item android:state_pressed="true" android:drawable="@drawable/img_love"/>

效果一致

再在main.xml文件中设置ImageButton属性,并引用上述文件作为图片按钮的背景

<ImageButton
      android:id="@+id/imagebtn1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@drawable/imagebtn_select"
/>

这里千万不能设置android:src属性,否则将无法显示图片切换效果

方法二:在java代码中为图片按钮增加触摸监听的函数来实现图片切换

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

时间: 2024-09-30 00:27:23

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() == Mot

ImageButton动态改变按钮图片

在drawable 目录下增加一个myselector.xml文件,appwidget_play.png,appwidget_played.png myselector.xml文件中内容如下 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item

ImageButton单击切换图片效果

转载请标明: http://blog.csdn.net/u012637501 我们平时在使用手机app时,常常会发现当我们按下某个按钮时相应按钮会发生变化,当我们松手时又恢复了原来的样子.或是,当你连续单击同一个按钮,会实现不同的功能.刚开始的时候感觉很神奇,那么现在我们来揭开她的面纱,经过下面的学习我相信你也可以轻轻松松将其拿下! 一.单击效果 首先看下将要实现的效果: Android为实现图片按钮按下的效果有两种方式可以实现:一是增加代码,二配置XML. 1.方式一:增加代码实现 (1)ma

解决基于JQ焦点图快速点击切换按钮图片显示错误的问题

之前用原生js做过焦点图,今天突然想用JQ做一下,但是遇到一个问题,当我不停点击切换按钮时,由于不停触发animate动画,导致图片显示错乱的问题,解决办法第一想到的就是点击切换后立刻解绑事件,然后动画函数运行完再添加事件,但是 ....用 $('.box').unbind('click'); 解绑后,再把原有事件添加回来却没有办法添加回来 $("button").bind("click",function(){ //函数体 }); 这样?可是函数体里没法写 ,可能

NGUI使用3——制作图集&amp;自定义按钮&amp;切换按钮图片

1,准备素材新建一个文件夹,命名为UITexture. 2,创建Atlas在Project面板中,进入UITexture 文件夹,选中这两张图片,然后 右键-->[NGUI]-->[Atlas Maker],之后你会看到 Atlas Maker 的界面:在 Atlas Maker 界面中,点击[Create]按钮. 之后给这个Atlas 起名为MyAtlas.prefab,点击[保存]. 3,预览Atlas和Sprite保存之后,这个新的Atlas 就创建好了.可以点击一下[View Spri

[android] 切换按钮-自定义控件

准备两张图片,按钮背景,上面的小开关 创建一个类MyToggleBtn,继承View 实现三个构造方法,传递上下文, 实现构造方法,传递Context对象,在java代码中实例化时主要使用这个 实现构造方法,传递Context对象,AttributeSet对象,在布局文件中主要使用 View对象显示在屏幕上,有几个重要步骤 1.构造方法创建对象 2.测量view的大小 onSeasure(int,int) 3.确定view的位置,view自身有一些建议权,决定权在父view手中 onLayout

android控件布局 ToggleButton按钮 图片和文字

ToggleButton控件具有checked属性对于要切换状态的功能按钮来说十分好用 这里以phone的开启DTMFTwelveKeyDialer的按钮为例 展示其效果和布局 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro

Click Image关键字——模拟单击某一个图片 其余:Click Button / Click Link

Click   Image关键字——模拟单击某一个图片: 该关键字接收[  locator  ]一个参数,locator可以通过id.src.alt等进行定位: ================================================================ Open Browser              http://www.baidu.com                          chrome Click  Image             

[android] 切换按钮-自定义控件-拖动效果

重写View的onTouchEvent()方法,传递进来MotionEvent对象 调用MotionEvent对象的getAction()方法,获取当前动作 switch判断一下当前动作 事件为MotionEvent.ACTION_DOWN是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸到屏幕 定义手指最后的坐标lastX 调用MotionEvent对象的getX() 方法,得