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单击切换按钮图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RE2正则表达式引擎资料
- 下一篇: [032] 微信公众帐号开发教程第8篇-