1. 程式人生 > >Android 水波紋效果實現並且適配API21以下

Android 水波紋效果實現並且適配API21以下

前言

水波紋的點選效果還是很不錯的,使用起來也很簡單,但是在API21,Android5.0以下使用水波紋效果會直接崩潰,所以我們得考慮到適配

1、在res裡建立drawable-v21資料夾,在該資料夾下建立一個xml檔案

<!-- color_106是一個淺灰色的 -->
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/color_106">
    <!--去掉此item內容就是無界效果-->
    <item android:drawable="@color/white"/>
</ripple>

2、然後在drawable資料夾下建立一個同名的xml檔案

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

5.0以後適用水波紋,5.0以下就是簡單的selector點選白色背景變為灰色

最後

這個也是一個坑,當時沒注意,然後直接用了ripple效果,結果導致5.0以下的手機進到使用ripple的介面都崩潰了。這個小坑記錄下來。