有时单击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