在 5.0 后加入了ripple标签,使用这个 Drawable 做控件的背景,在点击的时候就可以达到 波浪的效果。
ripple 标签对应的是一个 rippleDrawable ,当使用它作为背景的时候,在控件按下去的时候,就会显示水波效果。
ripple 主要有两种形式
没有边界的 ripple
这种没有边界的 ripple 只需要设置 ripple color 属性就行了,不用给它添加 itme
有边界的 ripple
这种有边界的需要给 ripple 添加一个 itme ,item 可以是 图片、纯颜色、shape 、selector。注意如果想控件在不被点击的时候背景不显示,这个时候需要给 item 设置 id = @android:id/mask否则控件的背景就是 item 的资源了。
在 5.0 之前 forground = ?attr/selectableItemBackground 可以实现波纹效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#0ff"> <!--波纹颜色-->
<item>
<shape android:shape="rectangle">
<!-- 填充背景色-->
<solid android:color="#999"/>
</shape>
</item>
</ripple>