Android 水波纹点击效果

Android 水波纹点击效果

本文参考:
http://www.tuicool.com/articles/NFr6jie
http://www.2cto.com/kf/201608/542438.html

本文介绍的是一个点击出现水波纹扩散效果,这个效果不要太酷炫,这个效果已经广泛在安卓设备上使用了。在一些控件上这种效果已经自带了,但是在一些普通的控件比如一个TextView或者Button上,我们该如何设置水波纹效果呢?可以由系统自带的属性实现,也可以自定义实现效果。

Android 水波纹点击效果_第1张图片

水波纹效果大致上可以分为两类,一类是有界水波纹,而另一类是无界水波纹,较为广泛使用的是有界水波纹,所以本文也只介绍有界水波纹。

系统自带的水波纹实现

系统自带的方法非常方便,只需要给相应的空间设置背景,背景内容则为系统自带的 selectableItemBackground ,这样的话,水波纹就会在TextView所在的区域内进行绘制。

<TextView
    android:background="?android:attr/selectableItemBackground"
    ... />

自定义水波纹实现

自定义这个效果也非常简单,只需要在drawable文件夹中定义ripple节点,再设置上颜色就可以了。但是必须注意一点的是,该效果只能在Android 5.0以上使用,如果需要兼容低系统版本的话,就需要新建v21的Resource Directory了。


<ripple   xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#e0e0e0">
  <item>
    <shape android:shape="rectangle">
      <solid android:color="#FFFFFF"/>
    shape>
  item>
ripple>

我们必须在ripple中定义item,如果没有的话,就变成了无界水波纹,在item中定义的颜色是ripple在未点击时的颜色,而水波纹的颜色是由ripple节点中的颜色来控制的。

然后在相应的控件中设置背景即可。

带图片形状的水波纹

如果我们不想要水波纹最后填充完整个控件,而是由一个图片的形状的话,只要相应修改item的形状即可。

你可能感兴趣的:(Android,android,控件)