1. 程式人生 > >Android5.0適配——水波紋點選效果

Android5.0適配——水波紋點選效果

Android5.0後預設的的點選效果帶有高大上的水波紋,但是如果你還是按照5.0前那樣設定背景的話那就不會有波紋,實現也超級簡單


一,先在res資料夾下新建一個drawable-v21資料夾

二,把我們5.0之前的背景檔案比如select或者shape等複製到這drawable-v21資料夾下

比如我之前是這樣一個selector :

<item android:state_enabled="false">

<shape>

<cornersandroid:radius="2dp"></corners>

<solidandroid:color="@color/redcolorPressed"

></solid>

</shape>

</item>

<item android:state_pressed="true">

<shape>

<cornersandroid:radius="2dp"></corners>

<solidandroid:color="@color/redcolorPressed"></solid>

</shape>

</item>

<item android:state_pressed="false">

<shape>

<corners

android:radius="2dp"></corners>

<solidandroid:color="@color/colormain"></solid>

</shape>

</item>

</selector>

在drawble-v21下改成這樣就行了,就是在外面包一層ripple和一個item:

android:color="@color/ripple_material_dark">//水波紋的顏色

<item>

<selector>

<item android:state_enabled="false">

<shape>

<cornersandroid:radius="2dp"></corners>

<solidandroid:color="@color/redcolorPressed"></solid>

</shape>

</item>

<item android:state_pressed="true">

<shape>

<cornersandroid:radius="2dp"></corners>

<solidandroid:color="@color/redcolorPressed"></solid>

</shape>

</item>

<item android:state_pressed="false">

<shape>

<cornersandroid:radius="2dp"></corners>

<solidandroid:color="@color/colormain"></solid>

</shape>

</item>

</selector>

</item>

</ripple>

當然你也可以用一些第三方的庫來實現相容版本的水波紋效果,不過我試了一些,效果始終沒有原生的好,有時還會出現一些bug,所以個人覺得還是用原生的比較好,畢竟現在5.0以上越來越多,這是趨勢,5.0以下慢慢淘汰,只要做好selector就行了


原創作品,歡迎轉載