前言
Android 控件的阴影效果的实现方式有很多种,但是许多都有高低版本的兼容性问题。
于是,我进行了一些调研,发现 Github 上面有两种方案,兼容性比较好,基本适配了高低版本问题
1. YCCardView
2. ShadowLayout
下面详细介绍一下
ShadowLayout
https://github.com/lihangleo2/ShadowLayout
优点
• 支持定制化阴影
• 系统shape功能:项目中shape、selector
缺点
• Bitmap 缓存依赖于 Glide,IMO 项目中没有使用 Glide,改造成本大
• 圆角也是依赖 Glide 实现
支持功能
支持定制化阴影:
1. 随意修改阴影颜色值
2. 阴影圆角:可统一设置圆角,也可对某几个角单独设置
3. x,y轴阴影偏移
4. 随意修改阴影扩散程度
5. 隐藏阴影:隐藏某边或多边阴影,或完全隐藏
不止于阴影;系统shape功能:项目中shape、selector、ripple统统拥有。解放你的双手,清空项目drawable文件夹
1. shape样式:pressed(按钮点击)、selected(按钮选择)、ripple(点击水波纹)
2. 背景色设置
3. stroke边框设置
4. 渐变色背景色值
5. 按钮是否可被点击
6. 可绑定textView后,可伴随文案变化,可伴随文案颜色变化
7. 支持设置图片背景,支持图片selector
效果展示
YCCardView
https://github.com/yangchong211/YCCardView
paint.setShadowLayer(float radius, float dx, float dy, int shadowColor);
这个方法可以达到这样一个效果,在使用canvas画图时给视图顺带上一层阴影效果。
简单介绍一下这几个参数:
• radius: 阴影半径,主要可以控制阴影的模糊效果以及阴影扩散出去的大小。
• dx:阴影在X轴方向上的偏移量
• dy: 阴影在Y轴方向上的偏移量
• shadowColor: 阴影颜色。
优点
• 支持设置阴影偏移效果,支持设置扩散阴影,设置圆角大小,设置阴影颜色,还可以设置上下左右某个方法显示阴影效果。
缺点
• RecyclerView的item设置阴影,Bitmap 的缓存知识简单存储在 map 当中,在实际使用场景可能会有问题,自测 Demo 暂时没发现
效果展示
小结
本文介绍了 Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题,你学会了嘛,赶紧动手搞起来。
点击关注我:<note.youdao.com/s/1I6>,可以获得以下学习资料和大厂面经
• 获取 Android 学习视频
• 获取简历模板,教你如何优化简历,走近大厂
• 大厂算法面试题,可以获得面试常见算法,剑指 offer 题解
• 可以获得马士兵学习视频一份
• 可以获得我精心整理的 Java 电子数据