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=""属性值了,否则图片的按下效果就出不来了。

时间: 2024-11-14 19:36:31

Android ImageButton单击切换按钮图片效果的相关文章

ImageButton单击切换按钮图片

有时单击ImageButton图片按钮时需要获取变换图片的效果,在这里介绍两种方法仅供参考 正常显示 点击切换 方法一:通过给按钮配置XML文件来实现图片按钮的背景切换效果 在layout或者是drawable文件下添加一个imagebtn_select.xml文件 <?xml version="1.0" encoding="utf-8"?>    <selector xmlns:android="http://schemas.andro

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 imageButton 点击按钮前中后,按钮颜色的变化

我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中.所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们最容易想到的就是,手动监听按钮的选中和点击事件,然后写代码来替换按钮的背景,但是在android中,我们不需要这么麻烦,android早就替我们想好了解决方案,那就是selector资源.如果我们要实现按钮的三种背景,只需在res/drawable目录中建立这样一个XML文件: selector.x

Android中使用ImageViewSwitcher实现图片切换轮播导航效果

前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(未实现轮播)附链接: Android中使用ViewFlipper实现屏幕切换 Android中使用ViewPager实现屏幕页面切换和页面切换效果 今天我们在换一种实现方式ImageViewSwitcher. ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果 ImageSwitcher粗略的理解就是ImageView的选择器. ImageSwitcher的原理:ImageSwi

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

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

android ImageButton的图片怎么定义?

============问题描述============ 我自定义了一个View对象,对象内在行项目上添加了一个ImageButton对象,对象的图片使用src属于设置,然后在按钮的OnClick事件内通过setBackgroundResource方法设置了ImageButton对象的图片,但两个属于对应的图片不是同一个东西:前者设置后会有一个方形的按钮在下面显示,后者设置后不会显示方形的按钮:如何在xml内设置setBackgroudResource的图片,不要显示按钮的方框: =======