日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ImageButton单击切换按钮图片

發(fā)布時(shí)間:2025/3/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ImageButton单击切换按钮图片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有時(shí)單擊ImageButton圖片按鈕時(shí)需要獲取變換圖片的效果,在這里介紹兩種方法僅供參考

正常顯示

點(diǎn)擊切換


方法一:通過(guò)給按鈕配置XML文件來(lái)實(shí)現(xiàn)圖片按鈕的背景切換效果

在layout或者是drawable文件下添加一個(gè)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"/>

是指是否取得焦點(diǎn),比如用戶選擇了一個(gè)文本框。


再在main.xml文件中設(shè)置ImageButton屬性,并引用上述文件作為圖片按鈕的背景

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

這里千萬(wàn)不能設(shè)置android:src屬性,否則將無(wú)法顯示圖片切換效果


方法二:在java代碼中為圖片按鈕增加觸摸監(jiān)聽(tīng)的函數(shù)來(lái)實(shí)現(xiàn)圖片切換

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){???????//重新設(shè)置按下時(shí)的背景圖片??btn.setImageResource(R.drawable.smile);?}else?if(event.getAction()?==?MotionEvent.ACTION_UP){???????//再修改為抬起時(shí)的正常圖片??btn.setImageResource(R.drawable.love);}??return?false;???????}??????? });

這里講解下onClick()和onTouch()方法的區(qū)別:

onClick傳入的參數(shù)就一個(gè)onClick(View v)而 onTouch為onTouch(View v, MotionEvent event)顯然后者可以對(duì)控件有更豐富的操作,比如判斷觸摸的狀態(tài)(比如按下,或者放開(kāi)),和得到點(diǎn)擊的位置等等,因此可以通過(guò)觀察方法參數(shù)來(lái)推測(cè)方法的使用

利用MotionEvent.getAction()函數(shù)判斷用戶觸發(fā)事件的類型,有2種類型:

1、MotionEvent.ACTION_DOWN ?按下事件

2、MotionEvent.ACTION_UP ? ?抬起事件

通過(guò)event.getAction()來(lái)獲取用戶的動(dòng)作 ,

根據(jù)事件的不同通過(guò)調(diào)用setImageResource()來(lái)設(shè)置背景圖片即可。





轉(zhuǎn)載于:https://blog.51cto.com/macxiao/1579169

總結(jié)

以上是生活随笔為你收集整理的ImageButton单击切换按钮图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。