方法一 系统自带水波纹效果,在view的xml布局中添加如下代码即可
android:background="?android:attr/selectableItemBackground" <!-- 系统自带水波纹效果 -->
方法二(用颜色值和shape绘制):res目录下的drawable文件夹下创建 linerlayout_water_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 点击后水波纹的颜色效果 -->
<item android:drawable="@color/text_Grey" android:state_pressed="true"/>
<item android:drawable="@color/text_Grey" android:state_focused="true"/>
<!-- 默认显示的颜色效果 -->
<item android:drawable="@color/write"/>
</selector>
在res目录下创建drawable-v21 (如果有就不用创建),并创建 linerlayout_water_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/text_Grey"> <!-- 点击后水波纹的颜色效果 -->
<item>
<!-- 默认显示的颜色效果 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp" />
<!--<solid android:color="@color/white" />-->
<solid android:color="@color/white" />
</shape>
</item>
</ripple>
颜色值:
<color name="colorWhite">#ffffff</color>
<color name="text_Grey">#c1c1c2</color>
方法三(用颜色值和图片绘制,这个我也是在ui非常懒,不愿意给我切图的情况下,被逼无奈才发现的,原来水波纹还可以用图片绘制,记录在这里作为经验以后温故参考):
res目录下的drawable文件夹下创建 btn_down_water_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 点击后水波纹的颜色效果 -->
<item android:drawable="@color/btn_save_water" android:state_pressed="true"/>
<item android:drawable="@color/btn_save_water" android:state_focused="true"/>
<!-- 默认显示的图片样式效果 -->
<item android:drawable="@drawable/icon_download"/>
</selector>
在res目录下创建drawable-v21 (如果有就不用创建),并创建 btn_down_water_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/btn_save_water"> <!-- 点击后水波纹的颜色效果 -->
<item>
<!-- 默认显示的图片样式效果 -->
<bitmap android:src="@drawable/icon_download"/>
</item>
</ripple>
最后在你想要添加的view或者布局的xml代码里面用background属性引用即可,记得给这个veiw或者布局添加android:clickable="true" 和android:focusable="true"的属性:
<ImageView
android:id="@+id/iv_download"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="@dimen/dp_78"
android:layout_marginRight="@dimen/dp_24"
android:clickable="true"
android:focusable="true"
android:background="@drawable/btn_down_water_selector"/>
然后运行基本就可以了,如果遇到水波纹不显示的问题,可以参考这篇博客底部的异常解决方案来对照解决:https://blog.youkuaiyun.com/wjj1996825/article/details/80778711