CrazyShadow

项目地址:Hitomis/CrazyShadow
简介:为你的 View 添加阴影效果就是一句代码的事.

说明:
CrazyShadow 是一个专门为 View 添加阴影效果的库。 设计 CrazyShadow 主要是因为自己一直想为最近编写的SpinMenu 与 ThumbnailMenu 还有将要完成的 ActivitySwitch 添加阴影效果,之前在网上一直没有找到合适的可以用的参考案例。所以只能 自己去编写这样一个 library。

而在实际运用在,发现理想总是丰满的,现实很骨感。虽然可以实现优美的效果以及多功能性,但是使用场景比较单一:只能 为传统的矩形 UI(即最终显示效果)添加阴影。为什么结果会是这样呢?大家都知道,一个 View 显示的模型肯定是一个矩形,不 管如何自定义 View 都有 left、top、right、bottom 以及 width、height 等一些概念,而这些概念也定位了 View 的模 型必定为一个矩形。所以 阴影效果的添加依据模型必定也是一个矩形。

虽然有了很多限制,我想既然都做了,还是尽自己最大努力吧,目前 CrazyShadow 支持三种方式为 View 添加阴影效果。

  1. wrap : 以包装 View 的方式添加阴影效果。该方式会改变 View 的大小。因为如果保持 View 大小不变同时又在 View 四周添加了阴影,那么 View 的尺寸定会比之前大,这样可能会引起 View 周围其他 View 的位置变化。

  2. fall : 以 View 的根视图(DecorView 中的 FrameLayout) 中添加一层阴影效果。不过因为与 View 不在一个布局层面上,所以当发生用户交互使原 View 的位置发生改变后,阴影还是会留在原来的位置。此种方式只能在位置不会发生改变的 View 上使用。慎用啊

  3. drawable : 直接创建一个附带阴影效果的矩形(支持圆角) drawable 作为 View 的 background, 简单粗暴。不过因为 background 的最大尺寸为原 View 的尺寸,所以设置了阴影后,原 View 大小会依据配置的阴影大小发生变化,并且原 View 的位置会向上的偏移来显示出阴影的效果。

Preview

Import

导入 cslibrary Module 中的 作为依赖库,后期看情况是否上传到 Jcenter

Usage

​new CrazyShadow.Builder().setContext(this).setDirection(CrazyShadowDirection.ALL).setShadowRadius(dip2Px(3)).setCorner(dip2Px(5)).setBackground(Color.parseColor("#96a993")).setImpl(CrazyShadow.IMPL_DRAW).action(findViewById(R.id.relay_draw1));
​

更多示例代码可以查看 MainActivity

Attribute

属性 说明
impl 以何种方式添加阴影,支持 wrap、fall、drawable 三种方式
baseShadowColor 阴影的基本颜色,即最深的颜色,与 colors 表示为同一个作用, 如果 baseShadowColor 与 colors 都不设置,阴影会使用默认颜色
background 修改 View 的背景色,如果使用 drawable 方式添加阴影,那么该属性必须添加
colors 绘制阴影时需要的一个颜色由深到浅且长度为 3 的数组, 该属性与 baseShadowColor 起同一个作用,如果单单只设置 baseShadowColor 也会自动转换成为 colors
corner 阴影顶点的内侧弧度。以适配被设置的 View 是圆角的情况, 对使用 drawable 方式设置阴影时,该属性表示为圆角矩形背景的圆角角度
shadowRadius 阴影大小
direction 设定阴影在 View 上显示的方位, 支持的方位详情可以查看 CrazyShadowDirection

Method

方法 说明
make 为 View 添加阴影效果, 使用 Builder 的 action 方法时会自动调用
remove 移除阴影
hide 隐藏阴影,与 remove 不同的是,hide 只是隐藏了 View 周围的阴影效果,并没有移除
show 如果调用了 hide ,可以再使用 show 将阴影效果显示出来

View 添加阴影效果相关推荐

  1. android 四周发散阴影,view 添加四周阴影效果

    self.bgView.layer.shadowOffset = CGSizeMake(1,1); self.bgView.layer.shadowOpacity = 0.3; self.bgView ...

  2. iOS View添加四周阴影

    在开发过程中,给一个View添加阴影效果可能会经常遇到,那我们如何实现一个简单的阴影效果呢? 代码如下: /// 添加四边阴影效果 + (void)addShadowToView:(UIView*)s ...

  3. android 按钮带图标 阴影_Android实现图片添加阴影效果的2种方法

    给图片添加阴影效果,这是很常见的需求.第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下: show_view.xml: android:top="5dp&q ...

  4. html如何给文字添加阴影效果,css中怎么给字体添加阴影效果

    css中可以使用text-shadow属性给字体添加阴影效果,text-shadow是CSS样式属性单词,是设置对象中文本的文字字体是否有阴影及模糊效果的CSS样式. text-shadow属性的语法 ...

  5. android 代码加view,Android中将View添加至窗口的源码分析

    本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的.下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界面(我们可以将之理解为应用程序窗口 ...

  6. java 图片阴影_Java如何为 PPT 中的图形添加阴影效果

    在PowerPoint文档中,给图片添加阴影效果能增强图片的逼真度,使其贴近现实效果,提升文档的美观度. 本文将展示如何使用Free Spire.Presentation for Java为PPT中的 ...

  7. Android之BaseQuickAdapter(3.0.4版本)给子view添加点击事件(helper.addOnClickListener(view))的函数没了

    1.问题 用BaseQuickAdapter给子view添加点击事件,以前都是在适配器里面这么写的helper.addOnClickListener(view),现在这个函数没了 2.解决办法 直接在 ...

  8. java 图片阴影_Java 为 PPT 中的图形添加阴影效果

    在PowerPoint文档中,给图形添加阴影效果能增强图形的立体感,使其贴近现实效果,提升文档的美观度. 本文将展示如何使用Free Spire.Presentation for Java为PPT中的 ...

  9. ios view添加上边框_iOS开发之如何给View添加指定位置的边框线详解

    本文主要给大家介绍了关于iOS如何给View添加指定位置边框线的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 略微封装了一下,给View添加指定位置的边框线,其中位移枚举 ...

  10. ios 绘制线框_iOS开发 给View添加指定位置的边框线

    略微封装了一下,给View添加指定位置的边框线,其中位移枚举的使用询问了哥们儿,总算搞定: 封装一:直接封装成了一个方法 /// 边框类型(位移枚举) typedef NS_ENUM(NSIntege ...

最新文章

  1. PX4编写msg文件
  2. python 一次编辑
  3. JVM:7种垃圾回收器总结
  4. php中添加分类的界面设计,zblog php新增自定义分类模板和文章模板
  5. windebug常用命令
  6. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 11丨产品销售分析 III【难度中等】
  7. Java SSM4——Spring
  8. hive实现根据用户分组,按用户记录求上下两条记录的时间差
  9. Spark学习之第一个程序打包、提交任务到集群
  10. 使用GDAL的MEM内存文件保存临时文件
  11. (Photo Metadata Remover)Android App 一键去除照片 EXIF 隐私信息
  12. 神经网络中的激活函数
  13. day22 随机输出ArrayList
  14. oracle同时删除一行数据,oracle 多表删除 同时删除多表中关联数据
  15. bat脚本 启动另一个bat
  16. express router路由管理中间件
  17. 大学计算机系的电视剧,陈若轩成肖奈之后又一个计算机系校草!合作徐娇和最美学姐...
  18. office2020与2016版的不同_office2019和2016区别|Office2019新功能
  19. 【Web 基础】Cookie
  20. 动易html在线编辑器 漏洞,动易NewComment.asp注入漏洞

热门文章

  1. 深度学习----HOI人物交互算法:ICAN
  2. 计算机单位换换算,时间单位换算表与计算机单位换算
  3. paperwhite3翻页_亚马逊Kindle Paperwhite 3G / Wi-Fi评论
  4. 深度学习检测视频马赛克
  5. 集线器、交换机和网桥三者有什么区别
  6. three.js 08-03 之 加载和保存对象
  7. 内存单元地址求字节大小的计算方法
  8. xp计算机用户账户密码删除,xp强行删除管理员开机密码
  9. 微信个人号有哪些好玩的自动回复?自动回复话术分享
  10. python学习笔记30(利用turtle绘制最基本的几何图形)