android 自定义ripple

在Android L使用了RippleDrawable类,用一个水波纹扩散效果在两种不同的状态间过渡。
使用Material Design样式的应用,button默认带有该效果。除了默认的效果外,系统还提供了另外两种效果,我们只把button的背景指定为:

  • ?android:attr/selectableItemBackground
  • ?android:attr/selectableItemBackgroundBorderless

任何view处于可点击状态,都可以使用RippleDrawable来达到水波纹特效。
我们也可以通过设置RippleDrawable的颜色属性来调节动画颜色,系统默认的颜色为主题的一个属性颜色:

  • android:colorControlHighlight,所以我们可以通过修改该颜色值来统一修改默认的水波纹颜色。
  • android:colorAccent可以修改checkbox的选中颜色

?android:attr/selectableItemBackground


<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorControlHighlight">
    <item android:id="@android:id/mask">
        <color android:color="@android:color/white" />
    item>
ripple>

?android:attr/selectableItemBackgroundBorderless


<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorControlHighlight">
ripple>

自定义 限制扩散返回的ripple

drawable-v21 下新建一下ripple文件


<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/ripple_color">
    <item android:id="@android:id/mask">
        <color android:color="@color/ripple_color_mark" />
    item>
ripple>

自定义 不限制扩散返回的ripple

drawable-v21 下新建一下ripple文件


<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/ripple_color">
ripple>

你可能感兴趣的:(Android代码)