android: Android水波紋點擊效果

 

Android API 21及以上新增了ripple標籤用來實現水波紋的效果。咱們能夠經過設置ripple背景來實現一些View點擊效果。android

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

系統上的實現效果以下:less

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

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

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

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

 

因爲在API 21如下沒法使用ripple 標籤來實現波紋效果,爲了兼容低版本機型不出錯,咱們須要作波紋效果適配。code

能夠在res目錄下新建一個drawable-v21的文件夾,而後在其中新建一個名爲bg_ripple的文件:xml

<?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就是按下的水波紋顏色。blog

而後在drawable文件夾下也新建一個名爲bg_ripple的文件:ip

<?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>

 

在佈局中使用:utf-8

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

 

參考連接:

1. Android水波紋點擊效果

Android水波紋點擊效果

相關文章
相關標籤/搜索