Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题

简介: Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题

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


效果展示


306b3b774a489a7daa9b7db2b5cdf150_4a274fd43e194ce2a72077840bf29cef.png


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 暂时没发现


效果展示


7c36bb2c6b077dc4b81029e7a98e0264_65eb91434be44859826836d70a3ee9eb.png


小结


本文介绍了 Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题,你学会了嘛,赶紧动手搞起来。


相关文章
|
4月前
|
数据采集 监控 API
告别手动埋点!Android 无侵入式数据采集方案深度解析
传统的Android应用监控方案需要开发者在代码中手动添加埋点,不仅侵入性强、工作量大,还难以维护。本文深入探讨了基于字节码插桩技术的无侵入式数据采集方案,通过Gradle插件 + AGP API + ASM的技术组合,实现对应用性能、用户行为、网络请求等全方位监控,真正做到零侵入、易集成、高稳定。
662 59
|
7月前
|
存储 机器学习/深度学习 API
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
1116 31
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
|
人工智能 搜索推荐 物联网
Android系统版本演进与未来展望####
本文深入探讨了Android操作系统从诞生至今的发展历程,详细阐述了其关键版本迭代带来的创新特性、用户体验提升及对全球移动生态系统的影响。通过对Android历史版本的回顾与分析,本文旨在揭示其成功背后的驱动力,并展望未来Android可能的发展趋势与面临的挑战,为读者呈现一个既全面又具深度的技术视角。 ####
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
1303 83
|
10月前
|
数据采集 JSON 网络安全
移动端数据抓取:Android App的TLS流量解密方案
本文介绍了一种通过TLS流量解密技术抓取知乎App热榜数据的方法。利用Charles Proxy解密HTTPS流量,分析App与服务器通信内容;结合Python Requests库模拟请求,配置特定请求头以绕过反爬机制。同时使用代理IP隐藏真实IP地址,确保抓取稳定。最终成功提取热榜标题、内容简介、链接等信息,为分析热点话题和用户趋势提供数据支持。此方法也可应用于其他Android App的数据采集,但需注意选择可靠的代理服务。
441 11
移动端数据抓取:Android App的TLS流量解密方案
|
10月前
|
Java API 开发工具
Android cmdline-tools版本与最小JDK的关系
总的来说,Android的命令行工具和JDK之间的关系就像是一场舞会,两者需要彼此配合,才能共同创造出美妙的舞蹈。如果选择了不合适的舞伴(即不兼容的版本),可能会导致舞蹈中的步伐混乱,甚至无法完成舞蹈。而即使选择了合适的舞伴,也需要考虑舞伴的舞蹈技巧(即性能和稳定性),才能确保舞蹈的完美表现。因此,选择合适的Android命令行工具和JDK版本,是每一个Android开发者都需要面对的重要决定。
328 13
|
11月前
|
安全 开发工具 Android开发
【Android Git】Git版本回退方式
在实际操作中,选择合适的版本回退方式,可以有效地管理代码版本,提高开发效率和代码质量。
657 26
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
820 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
Android开发
xamarin.forms 版本自动更新(针对android)
原文:xamarin.forms 版本自动更新(针对android) 1.首先同过url地址下载文件,这里必须要启用单独一个下载线程  new Thread(run).Start(); 通过url下载的方法  public void run()        {            int ...
2069 0
|
4月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
574 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡