欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ImageButton单击切换按钮图片

发布时间:2025/3/17 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ImageButton单击切换按钮图片 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

正常显示

点击切换


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

在layout或者是drawable文件下添加一个p_w_picpathbtn_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"/>

是指是否取得焦点,比如用户选择了一个文本框。


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

<ImageButtonandroid:id="@+id/p_w_picpathbtn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/p_w_picpathbtn_select" />

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


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

final ImageButton btn = (ImageButton)findViewById(R.id.p_w_picpathbtn1);           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;       }        });

这里讲解下onClick()和onTouch()方法的区别:

onClick传入的参数就一个onClick(View v)而 onTouch为onTouch(View v, MotionEvent event)显然后者可以对控件有更丰富的操作,比如判断触摸的状态(比如按下,或者放开),和得到点击的位置等等,因此可以通过观察方法参数来推测方法的使用

利用MotionEvent.getAction()函数判断用户触发事件的类型,有2种类型:

1、MotionEvent.ACTION_DOWN  按下事件

2、MotionEvent.ACTION_UP    抬起事件

通过event.getAction()来获取用户的动作 ,

根据事件的不同通过调用setImageResource()来设置背景图片即可。





转载于:https://blog.51cto.com/macxiao/1579169

总结

以上是生活随笔为你收集整理的ImageButton单击切换按钮图片的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。