Android 水波纹点击效果

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

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

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

系统自带的水波纹实现

系统自带的方法非常方便,只需要给相应的空间设置背景,背景内容则为系统自带的 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的形状即可。

更多相关文章

  1. Android中用shape做渐变,边框,圆角等效果
  2. Android操作HTTP实现与服务器通信
  3. android ListView根据字母排序和定位
  4. android webview自定义标签!(实现打电话的功能);
  5. Android(安卓)中的时间日期控件
  6. Android的MediaPlayer架构介绍
  7. Android——界面布局
  8. 【Android(安卓)开发】:UI控件之 ListView 列表控件的使用
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. android studio编译aidl文件出现问题
  2. Java获取文件的类型(扩展名)
  3. android中怎样获取IP地址
  4. Android 绑定远程Service(此Service开启
  5. Github Actions Android CI打包配置
  6. Android RadioButton class three kinds
  7. Android 混淆去掉log无效 assumenosideef
  8. Python基础——列表、元组、字典
  9. Android面试题目大全
  10. Android开发15——给TextView加上滚动条