目前应用对UI要求越来越高,难免会有阴影背景需求
常用的实现方式
标准Api实现阴影小结
- 21 版本及以上采用elevation 和 translationZ来实现阴影效果,虽然简单,但是局限性还是有的,比如纯色圆角阴影就会切掉部分阴影等
- ViewCompat 来兼容 Api实现阴影效果,跟上1点一样,21版本一下是没有阴影效果的
- Material Design设计中,也大量使用了阴影的效果,例如:FloatingActionButton、CardView 这些控件,都是默认支持阴影效果的
其他方法实现阴影
- 使用.9制作拉伸阴影背景图 给大家推荐个工具:http://inloop.github.io/shadow4android/
- 使用shape制作阴影背景图(多针对纯色阴影背景)
- 前面标准Api中有一个控件,FloatingActionButton可查看源码发现,阴影效果是ShadowDrawableWrapper对原本的 Drawable 做一个包装,在外围绘制阴影的效果,可以参考实现同样效果
- 上述几种实现相对于标准Api兼容性高
第三方库实现阴影(随便搜了3个库验证了下)
参考链接
- http://www.jcodecraeer.com/a/opensource/2017/0602/8030.html
- https://github.com/lijiankun24/ShadowLayout
- https://github.com/JuHonggang/ShadowDrawable
- https://juejin.im/post/5ae1ba4d6fb9a07acc116b8d
- https://github.com/psaravan/FlexiImageView
- https://github.com/dmytrodanylyk/shadow-layout
- https://blog.csdn.net/android_programmer/article/details/80308743
- 推荐详细阅读一遍:https://juejin.im/post/59f95ddaf265da432c232b5b
- https://juejin.im/post/5a93943c5188257a76634c4d
- https://juejin.im/post/59f09c3e6fb9a0452724ce09
网友评论