點擊水波紋效果


當布局沒有設置 background屬性的時候給其布局中加入一下代碼就是系統默認的水波紋效果

比如在recyclerview的item布局中,或者其他任意布局中。

android:background="?android:attr/selectableItemBackground"
    android:clickable="true"
    android:focusable="true"

當UI有要求布局、按鈕等的背景顏色時,使用ripple屬性來設置背景。

在drawable-v21中加入:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/feedback_sbmit_btn_color_press"//點擊時水波紋的顏色
    >
    <item>
        <shape android:shape="rectangle">//水波紋矩形形態。
            <solid android:color="@color/feedback_sbmit_btn_color_nor" />//正常狀態的顏色
            <!--<corners android:radius="4dp" />-->
        </shape>
    </item>
//以下兩行表示當按鈕或布局不可用時的狀態,可根據自己的實際情況添加。如果只考慮點擊的話刪除以下兩行即可。 <item android:drawable="@drawable/input_green" android:state_enabled="true"/> <item android:drawable="@drawable/after_send_2x" android:state_enabled="false"/> </ripple>

由於ripple屬性是21以上的系統才有,所以還需要在5.0以下,也就是正常的drawable文件夾下創建同名文件,代碼如下:(就是正常selector的寫法)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/feedback_sbmit_btn_color_press" android:state_pressed="true"/>
<item android:drawable="@color/feedback_sbmit_btn_color_press" android:state_focused="true"/>
<item android:drawable="@drawable/input_green" android:state_enabled="true"/>
<item android:drawable="@drawable/input_green" android:state_pressed="false"/>
<item android:drawable="@drawable/input_green" android:state_focused="false"/>
<item android:drawable="@drawable/after_send_2x" android:state_enabled="false"/>
</selector>

 說明:android5.0以上的系統默認button、imageButton、radioButton、checkBox等默認獲取焦點的控件,在不設置background屬性的情況下就具有水波紋效果

設置該屬性后(比如顏色圖片等等),水波紋失效。想要達到效果,就在v21中使用ripple設置background。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM