100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ImageButton单击切换按钮图片

ImageButton单击切换按钮图片

时间:2023-10-03 02:07:09

相关推荐

ImageButton单击切换按钮图片

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

正常显示

点击切换

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

在layout或者是drawable文件下添加一个p_w_picpathbtn_select.xml文件

<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="/apk/res/android"><itemandroid:state_pressed="false"android:drawable="@drawable/img_smile"/><itemandroid:state_focused="true"android:drawable="@drawable/img_happy"/><itemandroid:state_pressed="true"android:drawable="@drawable/img_love"/></selector>

其中的

<itemandroid: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代码中为图片按钮增加触摸监听的函数来实现图片切换

finalImageButtonbtn=(ImageButton)findViewById(R.id.p_w_picpathbtn1);btn.setOnTouchListener(newView.OnTouchListener(){publicbooleanonTouch(Viewv,MotionEventevent){if(event.getAction()==MotionEvent.ACTION_DOWN){//重新设置按下时的背景图片btn.setImageResource(R.drawable.smile);}elseif(event.getAction()==MotionEvent.ACTION_UP){//再修改为抬起时的正常图片btn.setImageResource(R.drawable.love);}returnfalse;}});

这里讲解下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()来设置背景图片即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。