Android 5.0中新增了ripple类型,即波纹效果
在res中添加一个新的文件夹drawable-v21,用于保存波纹效果
button_ripple_orange.xml
-
<?xml version="1.0" encoding="utf-8"?>
-
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-
android:color="#FFEEEEEE">
-
-
<item android:drawable="@drawable/button_bg_orange" />
-
-
</ripple>
ripple相当于layer-list层叠效果,ripple元素的color属性即指定了波纹效果的颜色,但必须是8位颜色代码值,前两位指定了波纹的透明度,后六位即波纹颜色,以黑色000000及白色FFFFFF效果最为明显
而<item android:drawable="@drawable/button_bg_orange" />即指定了按钮的正常状态的显示效果
button_bg_orange.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
-
- <corners android:radius="@dimen/button_corner_radius" />
- <solid android:color="@color/theme" />
-
- </shape>
将button_ripple_orange设置为按钮Background即可在按钮上实现点击波纹效果,但必须是API 21以上版本
如果只是普通的波纹效果,当你使用了Material主题后,波纹动画会自动应用在所有的控件上,也可以自己来设置其属性来调整到我们需要的效果。
可以通过如下代码设置波纹的背景:
android:background="?android:attr/selectableItemBackground"波纹有边界
android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界