Android 水波纹点击效果

来源:互联网 发布:南京雨花台区网络问政 编辑:程序博客网 时间:2024/05/01 19:05

Android 水波纹点击效果

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

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

img

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

系统自带的水波纹实现

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

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

自定义水波纹实现

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

<!-- ?xml version="1.0" encoding="utf-8"? --><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的形状即可。

0 0
原创粉丝点击