Item点击水波纹效果
先上效果图
ripple的使用(需要V21以上)
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/dark_blue"> <item android:drawable="@color/blue"/> </ripple>
其中item的颜色是控件正常状态的背景色,ripple中的颜色是点击时出现的颜色(会以半透明的形式展示出来)。ripple颜色的变化效果要比selector的效果更加柔和,以渐变的形式出现。
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/dark_blue"> <item android:id="@android:id/mask" android:drawable="@drawable/ic_launcher_foreground"/> </ripple>
mask的作用:只能在规定范围内显示水波动画,范围边界由mask遮罩对象指定(可以换一些比原有背景小的图片资源,可以看出效果)。
将ripple文件设置为控件的背景色就可以了。对于没有设置点击事件的控件,是没有变化效果的。需要为控件设置 android:clickable="true"
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_item_tv" android:layout_width="match_parent" android:layout_height="50dp" android:clickable="true" android:background="@drawable/item_blue_selector" android:gravity="center" android:textSize="17sp" />
对于低版本来说,我还是选择selector作为适配方案。截止到现在,21及以上版本已经覆盖了90%的设备。
foreground设置
现在的点击水波纹效果只有在抬起手指的时候才能看到,不符合一些项目的需求。
其实在控件除了设置background,还可以设置foreground。
android:foreground="?attr/selectableItemBackgroundBorderless"
在控件上加上这一句就可以看到你们想要的效果了。selectableItemBackgroundBorderless是系统提供的可以一个半透明灰色水波效果,在按住控件时,即可展示。( 如果不需要提前变蓝的效果,设置纯蓝色背景即可。)
欢迎加入Android开发技术交流QQ群;701740775
本群提供Android高级开发资料、高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)等相关资料和解答
不懂得问题都可以在本群提出来 还会有职业生涯规划以及面试指导
进群修改群备注:开发年限-地区-经验
方便架构师解答问题
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么你会觉得微服务架构很别扭
很多系统迁移到微服务架构之后,并没有明显感觉到微服务架构带来的优势,反而觉得带来了更高的复杂度,王启军在《持续演进的Cloud Native》书中总结了七种微服务架构没能发挥出固有优势的原因,看看自己“中枪”了没! 1、用传统方式构建微服务 微服务架构和传统的架构方式思路完全不一样。例如传统方式实现高可用,更相信流程,更相信KPI对人的影响,因此流程需要让更多的人去测试,制定更严格的发布流程。 而微服务架构强调的是自动化发布、灰度发布、Design For Failure、自动化测试、故障隔离、自愈。很多失败的案例以传统的方式去构建微服务架构,一切都没有转变,只是把服务拆开,根本无法享受微服务架构带来的便利,反而因此遇到了更多麻烦。最明显的是对开发人员的影响,他们质疑微服务架构是否适合自己的业务场景,而一个充满质疑的团队是不可能具备强大战斗力的。 2、组织结构不变 如果要充分发挥微服务架构的优势,组织结构必须发生转变,构建和微服务配套的小团队,并且让他们拥有绝对的自主权。实际上,相当一部分实施微服务架构的团队都没有做到这一点,因为组织结构总是涉及利益。比较典型的问题是,小团队不需要团队...
- 下一篇
Java程序员致命的误区:“努力”
努力的所有目的和意义都在于提升认知。这是非常重要的一个观点,深入理解这个概念,就可以解决职场中70%以上的问题。 在职场中,通常会遇到的情况是:“我也很努力呀,为什么升职不是我呢?”“在我们组里,我的加班也很多,为什么加薪的不是我”,诸如此类的问题,最重要的原因在于对努力认识的不够所导致的。 大家更倾向于将“努力”笼统的认为:用尽全力的去做事情,或者就是用来描述一种状态,从而却忽略了“努力”更深层次的含义,那就是提升认知。在不能深刻理解这一观点的情况下,“努力”就丧失了其宝贵的内涵。 如何正确的理解“努力” 1、单纯的消耗精力并不是“努力” 我们通常情况下,会把流程性的繁琐的事情当成努力;把工作时间的延长当成努力,这是一个误区,在这样的环境下,无论你付出多少时间,体力和脑力都不能让我们有所提升,很大程度上仅仅是持续的消耗而已,无助于个体的成长和进步。 不幸的是,包括笔者在内,我们绝大多数的付出仅就是消耗,在不能深入理解努力的意义时,我们很难跳出这个怪圈。 2、只有精进和挑战才能关联到“努力” 只有在挑战一项自己并不擅长的工作或项目的时候,才能提到“努力”这个概念,正是因为这件事情在某...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)