有时单击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单击切换按钮图片相关推荐

  1. Android - ImageButton单击切换按钮图片效果的实现

    在android中有一个ImageButton的View,跟Button按钮的区别是可以在Imagebutton上加载一个图片. 从ImageButton这个字面意思上来看,它是一个图片按钮,那么我们 ...

  2. android怎么点击换图片,ImageButton单击切换按钮图片

    有时单击ImageButton图片按钮时需要获取变换图片的效果,在这里介绍两种方法仅供参考 正常显示 点击切换 方法一:通过给按钮配置XML文件来实现图片按钮的背景切换效果 在layout或者是dra ...

  3. WPF 动态切换按钮图片

    WPF动态切换按钮图片就是在鼠标移上去的时候显示另一张图片 首先先把三张图片放上去 第一张 第二张 第三张 然后给他们一个值,鼠标移上去的时候是true,显示图片,鼠标移开的时候显示false不显示图 ...

  4. QT实现点击按钮,切换按钮图片

    对于实现QT中点击按钮切换按钮图片的功能,之前学习时做过一个项目,用到过这个功能. 之前是用代码的方式实现,后来实习之后,参与的一个项目中也用到这个功能,所以借此机会学习了一种新方法. 新方法不用代码 ...

  5. Qt 实现按钮点击切换按钮图片

    最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...

  6. qt中如何模拟按钮点击_Qt 实现按钮点击切换按钮图片

    最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...

  7. ImageButton点击按钮改变图片

    一.ImageButton点击按钮改变图片 **************************ImageButton点击按钮改变图片 有两种写法*************************** ...

  8. android 按钮图片切换动画效果,Button按钮点击图片切换效果

    Button按钮图片切换效果设置. 通常在工程中用到图片按钮点击事件,大多都用ImageButton.在这里我们用 Button的点击事件,在图片的切换过程中不再通过setBackgroundReso ...

  9. andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo

    andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo 博客分类: android android selector 改变按钮背景图片 主要是用到selector ...

最新文章

  1. python是c语言写的吗-python是c语言开发的吗
  2. 关于若干数据库数据插入性能的对比
  3. 细说Sql Server中的视图(下)转载
  4. linux搭建java开发环境_linux中搭建java开发环境
  5. How to Set Up ImpressPages 5.0 on LAMP in CentOS 7.2
  6. Android 布局管理器 之 TableLayout
  7. 高通针对LED应用的点阵字库解决方案 — 支持多种字号字体显示
  8. STM32CubeMX使用(六)之RTC及制作时间戳
  9. mysql中不重复_mysql中distinct的用法(不重复记录)
  10. 算法(四)、时间复杂度、排序、查找
  11. static 和 const的解释(转载)
  12. 电磁场仿真——绘制电场线和等势线
  13. 微软惊天泄漏,Win11 预览版镜像提前出世
  14. JMS 消息传送模式、消息签收以及spring jmsTemplate配置
  15. 二进制转化为十六进制
  16. masql函数与存储过程
  17. php获取qq头像地址,获取 QQ 头像地址,并且不暴露 QQ 号
  18. (初阶版本)扫雷游戏(C语言)娱乐教程
  19. 马上就博士毕业了,博士毕业论文外审结果回来了
  20. 单片机助手,STM32、杰发科技、定时器计算工具助手,CAN比特率计算助手

热门文章

  1. matlab实现一/多元线性回归
  2. caffe报错:Check failed: width <= datum_width (28 vs. 17)
  3. java 连接IBM MQ的方法和常见问题
  4. JS之scrollTop不起作用的问题(兼容性有问题)
  5. 将sql 结果导出到文件
  6. apache开源项目--Lens
  7. Java中看今天是星期几,礼拜几
  8. Android 访问网页
  9. NHibernate学习之基础配置
  10. 上清华到底有多难?清华大学保送生的数学试题了解一下