为CardView添加点击后的抬升效果

一、效果图

在真机上阴影效果很好,录屏效果差一点。

二、实现方法

1. 创建一个TranslationZ的变换动画

res/animator/touch_raise.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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="8dp"
android:valueType="floatType" />

</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="0dp"
android:valueType="floatType" />

</item>
</selector>

2. 为CardView加上属性

CardView布局中加入属性android:stateListAnimator="@animator/touch_raise"

这样,你的卡片按住时就会有浮起的效果了(或称抬升、阴影加深)。

三、参考资料

关于使用 CardView 开发过程中要注意的细节-泡在网上的日子

PS:欢迎关注SherlockShi博客

感谢你的支持,让我继续努力分享有用的技术和知识点!