先看下效果:

BUTTON1.gif
通過增強/減弱 CaradView的Elevation(陰影)范圍來給視覺造成BUTTON下沉的錯覺效果,因為是自帶的API,所以設置也很簡單。
首先創(chuàng)建資源文件button_sink.xml至/res/animator
代碼部分:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="0dp"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="5dp"
android:valueType="floatType" />
</item>
</selector>
在資源文件中創(chuàng)建layout-v21 , 并將需要使用的布局重新Copy一份至此(Android 5.0+才可使用)。
再layout-v21的布局的CardView中加入android:stateListAnimator="@animator/button_sink"即可食用。
如需點擊波紋效果,加入android:foreground="?attr/selectableItemBackground"即可