溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ImageButton單擊切換按鈕圖片

發(fā)布時間:2020-07-20 14:14:33 來源:網(wǎng)絡 閱讀:6331 作者:mac_xiao 欄目:移動開發(fā)

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

正常顯示

ImageButton單擊切換按鈕圖片

點擊切換

ImageButton單擊切換按鈕圖片


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

在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屬性,并引用上述文件作為圖片按鈕的背景

<ImageButton
      android: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代碼中為圖片按鈕增加觸摸監(jiān)聽的函數(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){       
               //重新設置按下時的背景圖片  
               btn.setImageResource(R.drawable.smile); 
            }else if(event.getAction() == MotionEvent.ACTION_UP){       
                //再修改為抬起時的正常圖片  
               btn.setImageResource(R.drawable.love);
            }  
            return false;       
    }       
});

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

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

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

1、MotionEvent.ACTION_DOWN  按下事件

2、MotionEvent.ACTION_UP    抬起事件

通過event.getAction()來獲取用戶的動作 ,

根據(jù)事件的不同通過調用setImageResource()來設置背景圖片即可。ImageButton單擊切換按鈕圖片





向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI