编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/73200900

前言

  android中的水波纹效果是5.0以后即API Level 21以后出现的,因此minSdkVersion必须设置在21及以上才可以使用此效果

Demo效果展示

  • 5.0以上版本手机:

  • 5.0以下版本适配:

水波纹效果实现

  • 系统中提供了水波纹效果的实现方法即在布局界面调用以下代码即可
// 系统提供的水波纹效果(有界/不能改颜色)
android:background="?android:selectableItemBackground"
// 系统提供的水波纹效果(无界/不能改颜色)
android:background="?android:selectableItemBackgroundBorderless"
  • 自定义的水波纹效果(有界/白色)
// background的根节点使用ripple(波纹)即可
<ripple xmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/ripple"><!-- 点击后的背景色--><item><shape><!-- 点击前的背景色--><solid android:color="@color/white"/></shape></item>
</ripple>
  • 自定义的水波纹效果(无界/白色)
<ripple xmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/ripple"><!-- 点击前默认白色 点击后的背景色-->
</ripple>
  • 自定义的水波纹效果(有界/彩色)
      将自定义的水波纹效果(有界/白色) 的颜色代码改一下就可以了

  • 自定义的水波纹效果(无界/彩色)
      将自定义的水波纹效果(无界/白色) 的颜色代码改一下就可以了

  • 自定义的水波纹效果(有界/彩色/圆角)

// 即在自定义的水波纹效果(有界/彩色)代码中添加corners节点
<ripple xmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/colorAccent"><!-- 点击后的背景色--><item><shape><!-- 点击前的背景色--><solid android:color="@color/colorPrimaryDark"/><!-- 设置四个角的角度 --><corners android:radius="30dp"/></shape></item>
</ripple>

5.0以下版本适配

  为了目前已经实现了5.0以上即API Level 21 以上版本的正常显示问题,但API Level 21以下版本是没有水波纹效果的,这一套布局无法实现全部需求,需要针对API Level 21 以下版本再写一套布局,因此需在res目录下新建一个drawable-v21文件夹放置只能API Level 21 以上版本才能使用的布局,drawable文件夹放置API Level 21 以下版本使用的布局和都可使用的布局。这样,android 5.0版本及以上手机先在drawable-v21文件夹找布局,再到drawable文件夹找布局,找不到就报错;android 5.0版本以下手机在drawable文件夹找布局

  • 系统提供属性的适配
// 系统提供的水波纹效果(有界/不能改颜色)
android:background="?android:selectableItemBackground"

  系统已实现了适配,5.0以上是水波纹效果,5.0以下是带选择器的按钮效果

// 系统提供的水波纹效果(无界/不能改颜色)
android:background="?android:selectableItemBackgroundBorderless"

  系统没有实现适配,5.0以下无法使用

  • 自定义效果适配(就是写一些状态选择器,我只以 自定义的水波纹效果(有界/白色) 进行适配,具体见文末Demo代码)
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 没有焦点时的背景颜色 --><item android:drawable="@color/white" android:state_window_focused="false" /><!-- 非触摸模式下获得焦点并单击时的背景颜色 --><item android:drawable="@color/ripple" android:state_focused="true" android:state_pressed="true" /><!-- 触摸模式下单击时的背景颜色 --><item android:drawable="@color/ripple" android:state_focused="false" android:state_pressed="true" /><!-- 选中时的背景颜色 --><item android:drawable="@color/ripple" android:state_selected="true" /><!-- 获得焦点时的背景  颜色 --><item android:drawable="@color/ripple" android:state_focused="true" />
</selector>

Demo下载请移步:http://download.csdn.net/detail/zxc514257857/9870032

----------因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!----------

Android开发中的水波纹效果实现相关推荐

  1. android水波效果,android动态壁纸中的水波纹效果

    [实例简介] android动态壁纸中的水波纹效果,采用opengl中的shader实现 [实例截图] [核心代码] @Override public String getVertexShader() ...

  2. android 立体 流量球,Android自定义View——实现水波纹效果类似剩余流量球

    Android自定义View--实现水波纹效果类似剩余流量球 三个点   pre   ber   block   span   初始化   move   理解最近突然手痒就想搞个贝塞尔曲线做个水波纹效 ...

  3. 聊聊Android5.0中的水波纹效果

    水波纹效果已经不是什么稀罕的东西了,用过5.0新控件的小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波纹效果呢?OK,我们今天就来 ...

  4. android自定义水波纹,Android自定义View——实现水波纹效果类似剩余流量球(示例代码)...

    最近突然手痒就想搞个贝塞尔曲线做个水波纹效果玩玩,终于功夫不负有心人最后实现了想要的效果,一起来看下吧: 效果图镇楼 一:先一步一步来分解一下实现的过程 需要绘制一个正弦曲线(sin)或者余弦曲线(c ...

  5. Android自定义View——实现水波纹效果类似剩余流量球

    最近突然手痒就想搞个贝塞尔曲线做个水波纹效果玩玩,终于功夫不负有心人最后实现了想要的效果,一起来看下吧: 效果图镇楼 一:先一步一步来分解一下实现的过程 需要绘制一个正弦曲线(sin)或者余弦曲线(c ...

  6. android水波圆圈动画,Android支付宝咻咻水波纹效果的实现

    概述 最近看到支付宝咻咻的页面就想模仿一下,话不多说,先看效果图.(录制的有点渣) GIF.gif 先说说这个效果: 1.点击中间图标开始搜索附近的人. 2.开始搜索后水波纹一圈圈的加速向外扩张. 3 ...

  7. android开发控件水波纹,Android实现水波纹控件的方法

    有很多app使用过水波纹的这样的效果,看着很酷酷的样子,所以自己就撸码写了一个. 实现思路: 利用贝塞尔曲线绘制圆弧(也就是水波的波纹) 通过动画改变绘制的起始点使水波纹平移 首先,定义我们需要的自定 ...

  8. Android开发中App演示Gif效果动画的制作过程详讲

    相信大家在做好App时,都想录制一段Gif动态效果.但可能苦于不知如何去实现,或者没有比较好的软件去实现.今天我给大家来详细的讲下整个过程=================== 首先,需要录制好一段视 ...

  9. Android 按钮实现按压水波纹效果

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

最新文章

  1. JavaScript跨域总结与解决办法
  2. Linux Shell执行原理
  3. 运行程序报“应用程序配置不正确”或者缺少运行库造成程序不可移植的问题...
  4. CPython对象模型:string(留坑待填)
  5. redis的基本使用笔记二
  6. SSH项目中遇到拦截器无法注入服务的问题
  7. Mapreduce原理和YARN
  8. ActiveMQ整合spring结合项目开发流程(生产者和消费者)总结
  9. 中考可用计算机吗,中考能用什么计算器 可以带电子手表吗
  10. 使用hibernate可以优化的地方
  11. SQL Server中并行执行计划的基础
  12. 合作式智能运输系统 车用通信系统应用层及应用数据交互标准 第二阶段_为什么一定要了解OPC UA TSN——未来的工业通信标准...
  13. Linux_MySQL下(4) 未整理
  14. STM8S——Analog/digital converter (ADC)
  15. 文件源路径太长无法删除
  16. 微信小程序商城源码,带前后端,基于node
  17. 空间曲线曲率算法c语言,第一章第四节空间曲线曲率计算公式及推导
  18. python3GUI--刷屏器(附源码)
  19. C# 读取xls格式的文件
  20. 【强化学习】基本知识梳理

热门文章

  1. 织梦系统(DEDECMS)后台模板修改
  2. 网络虚拟化 SDN NFV 和企业骨干网的演化
  3. 大数据Hadoop(一)
  4. RationalDMIS 7.1 高级编程之曲线/曲面轮廓度快速获取最大/最小误差
  5. 整合营销系统推荐乐云seo_广州整合营销【乐云seo】十年
  6. 解决:利用IDEA的右上角图标打开jsp文件
  7. nginx和gunicorn相关,反向代理和正向代理区别,静态资源和动态资源
  8. 讯wifi_裴讯路由器登录密码
  9. mysql四表统计数量:统计中国各个省份安装企业站点数量
  10. 你知道ArcGIS电子地图也有大字体地图吗(附下载方法)