1、本文介绍的是Android5.0中其中一个炫酷的效果,点击水波纹扩散效果( RippleEffect),以下介绍的实现方式都是调用Android5.0的新API,并非自定义实现,所以支持在Android5.0的设备,而大家想兼容低系统版本的话,就需要新建v21(即Android5.0)的Resource Directory.
效果如下:(ps:由于公司这台机子的模拟器跑不起来,只好在网上copy别人的效果了)
2,定义一个普通圆角背景的rounded_corners.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
</shape>
3,创建一个ripple_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF21272B">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
</shape>
</item>
<item android:drawable="@drawable/rounded_corners" />
</ripple>
4,直接在要使用这个效果的控件上的地方填上如下代码:
android:background="@drawable/ripple_bg"
补充:当你使用了Material主题后,波纹动画会自动应用在所有的控件上,我们当然可以来设置其属性来调整到我们需要的效果。可以不使用以上代码来实现,直接在要实现这个效果的控件上添加一下代码:
android:background="?android:attr/selectableItemBackground"波纹有边界 android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界
效果如下(第一个是什么都没写,使用默认的):