近段时间在学习知乎开源项目Matisse,无意之中发现他们仅仅使用一行代码就实现了水波纹效果,这着实令我大吃一惊!

为了get这个技能,我也是走了很多冤枉路,所以记录一下,也许可能帮助其他童鞋。

先看看他们是如何实现的

android:foreground="?selectableItemBackground"

恩,前面也说,只用这一句就够了。其中 android:foreground 是前景色,我第一次看见这个货的时候是一脸懵逼,我相信不知我一个童鞋对他感觉到陌生。他与android:background是相对的,相比背景色他的使用就太少了。

android:foreground

为了照顾一下不了解这个函数的童鞋,我简单解释一下

我们写个Demo,父布局文件中只有一个TextView
然后我们再TextView 中写点什么,
最后通过设置 android:backgroundandroid:foreground 观察结果

这里使用的颜色值为 #CF009688 ,添加了透明度。

android:background="#CF009688" 的效果

然后在来观察 android:foreground="#CF009688" 的效果

如果不添加透明度,foreground 会完全覆盖文字,我相信你们看完这个Demo就能够明白这个函数的意义了,这里我就不啰嗦了。

?selectableItemBackground 无效

接着上面的demo ,如果我为 TextView 设置 ?selectableItemBackground ,然后运行,会发现一点卵用都没有。

what?没用?那为什么知乎会有效果!是不是还需要设置什么主题 配置之类的!?

这是我第一次运行的心里写照,然后顺着这个坑我摸索了很久…

最后无意中发现是因为TextView 是不可点击的缘故。

所以只需要为View 设置
android:clickable="true"
或者
.setOnClickListener(null);

即可。

但愿不要在有童鞋重蹈我之前的覆辙。

水波纹改色

这个需要在主题中进行配置 ,配置代码如下
<item name="colorControlHighlight">@color/accent_material_light</item>

?selectableItemBackground 水波纹效果相关推荐

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

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

  2. Android开发中的水波纹效果实现

    编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/73200900 前言   android中的水波纹效果是5.0以后 ...

  3. 去除安卓点击的水波纹效果

    在引用了appcompat_v7包后,Android Studio主题样式Base application theme会自动引用最新的主题样式Theme.AppCompat.Light:sdk21版本 ...

  4. android水波纹点击动画,android 控件点击水波纹效果的几种方案

    目前我所知道的至少有三种可以实现点击水波纹的效果 第一种:安卓自带的方法 在安卓中有自带的一种属性,可以实现水波纹的效果,就是在所需要点击的控件属性加上如下代码: android:background ...

  5. Android点击水波纹扩散效果整理(附带一个自定义的水波纹效果控件)

    很久很久没有写博客了,说来也有点惭愧.正好最近整理自己的项目工程目录,看到一些值得分享的控件,准备在之后的几篇博客中准备把它们陆续搬运上来. 这篇博客准备整理一下Android Material De ...

  6. listview item水波纹效果被覆盖、不显示问题

    在adapter view布局中设置了background 即:android:background="@drawable/list_item_background" 然后又在Li ...

  7. Android 水波纹效果的探究

    前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1.基本使用 2.水波纹效果与布局绘制之间的问题 3.长按水波纹扩散效果 4.Butto ...

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

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

  9. 水波纹效果,附工程源码

    2019独角兽企业重金招聘Python工程师标准>>> 实现的一个水波纹效果,附工程代码. 这个可以用任意图片响应触屏事件显示波纹效果. 很多方面都能用得上,比如动态桌面,游戏,水族 ...

最新文章

  1. Tokyo Tyrant基本规范(4)--协议
  2. android导航条高度修改,Android中修改TabLayout底部导航条Indicator长短的方法
  3. qt 中如何播放声音(QSound)
  4. git 忽略文件失效
  5. selenium定位元素的方法_selenium定位元素之冻结窗口
  6. cesium加载entity图片缩放_Cesium中级教程4 – 空间数据可视化(二)
  7. RocketMQ 主从同步机制
  8. java 垃圾回收知识点
  9. 互联网反欺诈体系中的常用方法
  10. 王者荣耀女性机器人面世;深圳中院受理金立破产案;Firefox 64 发布 | 极客头条...
  11. 飞天技术汇大视频专场:全民视频时代下的创新技术之路
  12. python搜索关键词自动提交_Python如何爬取百度搜索关键词提交
  13. 狐狸找兔子(java 版)
  14. 【历史上的今天】10 月 23 日:ipod 问世;谷歌推出 CSE 搜索服务;人机交互领域先驱诞生
  15. YOLOv5剪枝 | 模型剪枝理论篇
  16. Javascript 暂停/终止脚本
  17. imac起死回生,在iMAC 27 2011 mid 上裸机安装windows10
  18. 百度静态网站全站搜索功能
  19. 技术人员的公众号如何打造高质量内容和精美排版?
  20. 如何修改已提交commit信息

热门文章

  1. html鼠标样式形状优化,鼠标箭头总变成放大镜样式,怎么恢复?
  2. esp32 Arduino(九)u8g2图形库 IIC驱动OLED
  3. Lattice 烧录文件到FLASH
  4. 互联网大资本是如何剥削你的?
  5. 大土狗书屋好书推荐--《编程之道》
  6. unity2d粒子特效
  7. 人工智能—机器学习常见算法
  8. 宝尚在线股票又是一日变天
  9. OceanBase 社区版部署示例
  10. 深度增强学习(DRL)漫谈 - 从DQN到AlphaGo