Ⅰ、按下改變顏色
一、效果圖
需求就是,在用戶按下選中的按鈕時,按鈕的顏色變成自己想要的顏色,用於提示用戶,當前按鈕正在被按下;鬆開手後,按鈕顏色恢復原狀。話不多說先上效果圖。
二、實現步驟
1、在res的drawable文件夾下,新建一個bt_selector.xml文件,文件內容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/unpressed" android:state_pressed="false"/>
<item android:drawable="@drawable/pressed" android:state_pressed="true"/>
</selector>
其中,unpressed對應的是,按鈕state_pressed="false",即按鈕沒有被按下時所要顯示的顏色;
而pressed對應的是,按鈕state_pressed="true",即按鈕被按下時所顯示的顏色;
2、value文件夾下的string.xml文件裏面添加如下內容:
<drawable name="unpressed">#F44336</drawable>
<drawable name="pressed">#C6993E01</drawable>
分別設定unpressed、pressed對應綁定的顏色。
3、在button裏面添加如下代碼:
android:background="@drawable/bt_selector"
則button裏面的完整代碼如下:
<Button
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="測試"
android:textSize="18sp"
android:background="@drawable/bt_selector"
/>
以上三個步驟,即可完成Android按鈕按下的時候,顏色變成我們想要的顏色,方便用戶判斷按鈕是否按下。
Ⅱ、實現按下按鈕圖片變換
一、效果圖
需求就是,在用戶按下選中的按鈕時,按鈕的顯示圖片變成自己想要的,用於提示用戶,當前按鈕正在被按下;鬆開手後,按鈕顯示圖片恢復原狀。上效果圖。
二、實現步驟
1、在res的drawable文件夾下,新建一個bt_selector.xml文件,文件內容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/stop_red_80" android:state_pressed="false"/>
<item android:drawable="@drawable/stop_gray_80" android:state_pressed="true"/>
<item android:drawable="@drawable/stop_gray_80" android:state_focused="true"/>
</selector>
其中,stop_red_80.png與stop_gray_80.png是放在drawable中兩張png格式的圖片
2、在button裏面添加如下代碼:
android:background="@drawable/bt_selector"
則button裏面的完整代碼如下:
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/bt_selector"
/>
以上兩個步驟,即可完成Android按鈕按下的時候,按鈕變成我們想要的圖片,方便用戶判斷按鈕是否按下。