之前有想试试,于是就试试,使用起来也确实简单。
fun View.createCircularReveal(centerX: Int, centerY: Int, startRadius: Float, endRadius: Float) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
visibility = View.GONE
val anim = ViewAnimationUtils.createCircularReveal(this, centerX, centerY, startRadius, endRadius)
anim.duration = 500
visibility = View.VISIBLE
anim.start()
} else {
visibility = View.VISIBLE
}
}
只是有一个问题,直接用会报一个错:
java.lang.IllegalStateException: Cannot start this animator on a detached view!
解决办法也很简单,post 即可:content
是一个 View 也可以是根布局,建议对布局使用 invisible
属性
content.post { content.createCircularReveal(0, 0, 30f.dp, content.measuredWidth.toFloat()) }
Demo:
源码也不是没有,以前一个小项目,自己常用:ADBTool
本站由以下主机服务商提供服务支持:
0条评论