抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

简单试试:圆形揭露动画CircularReveal

之前有想试试,于是就试试,使用起来也确实简单。

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条评论

发表评论