目标
通过OutlineProvider来完成阴影和圆角
视图圆角有很多方案,今天看到OutlineProvider可以用他来实现.还挺方便干净.
代码
binding.tvEvent.setBackgroundColor(Color.RED)
binding.tvEvent.clipToOutline = true
binding.tvEvent.outlineProvider = object :ViewOutlineProvider() {
override fun getOutline(view: View?, outline: Outline?) {
outline?.setRoundRect(0, 0, view?.getWidth()?:0, view?.getHeight()?:0, 30.0f);
}
}
binding.tvEvent2.clipToOutline = true
binding.tvEvent2.elevation = 5.0f
binding.tvEvent2.outlineProvider = object :ViewOutlineProvider() {
override fun getOutline(view: View?, outline: Outline?) {
val path = Path()
path.moveTo(view!!.width.toFloat(), view.height.toFloat())
path.lineTo(view.width.toFloat(), view.height * 2.toFloat())
path.lineTo(view.width * 2.toFloat(), view.height * 2.toFloat())
path.lineTo(view.width * 2.toFloat(), view.height.toFloat())
path.close()
outline!!.setConvexPath(path)
}
}
复制代码
效果
Android中的Z的含义
- Elevation 高度,一个静态值
- Translation Z z轴变动值,用于动画的动态值
Z Vaue = Elevation + TranslationZ
复制代码
参考
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END