android: Android水波紋點擊效果


 

Android API 21及以上新增了ripple標簽用來實現水波紋的效果。我們可以通過設置ripple背景來實現一些View點擊效果。

該水波紋效果有兩種:一種是有界的(點擊后類似於一個矩形向四周擴展),一種是無界的(點擊后類似於一個圓形向四周擴展)。

系統上的實現效果如下:

有界效果:
在API 21以上使用,才有波紋效果;API 21以下使用只有變色效果,沒有波紋效果。

android:background="?android:attr/selectableItemBackground"

無界效果:
在API 21以上才能使用,API 21以下會報錯無法編譯,最小版本要設置為minSdkVersion 21

android:background="?android:attr/selectableItemBackgroundBorderless"

 

由於在API 21以下無法使用ripple 標簽來實現波紋效果,為了兼容低版本機型不出錯,我們需要做波紋效果適配。

可以在res目錄下新建一個drawable-v21的文件夾,然后在其中新建一個名為bg_ripple的文件:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@android:color/darker_gray"> <!--波紋顏色-->
</ripple>

這里ripple中的color就是按下的水波紋顏色。

然后在drawable文件夾下也新建一個名為bg_ripple的文件:

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

 

在布局中使用:

<TextView
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_ripple"/>

 

參考鏈接:

1. Android水波紋點擊效果

Android水波紋點擊效果

 


免責聲明!

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



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