【发布时间】:2020-04-02 20:17:56
【问题描述】:
我正在 Kotlin 中制作旋转动画,并且在每个动画之后我想设置一个 net rotationStart 和 rotationEnd,其中 rotationStart 值最初应该设置为 = 0,然后在每次旋转后假定 rotationEnd 值的值
val rand = Random()
var rotStart : Float = 0f
var rotEnd : Float = rand.nextFloat(100f)
像这样设置旋转:
var rotateAnimation = RotateAnimation(
rotStart, rotEnd,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f
)
rotateAnimation.duration = 4000
rotateAnimation.repeatCount = 4
与听众:
rotateAnimation.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation?) {
}
override fun onAnimationRepeat(animation: Animation?) {
rotStart = rotEnd
rotEnd = rand.nextFloat(359f)
}
override fun onAnimationEnd(animation: Animation?) {
}
})
img_spinner.startAnimation(rotateAnimation)
}
这里的问题是,值 rotStart 和 rotEnd 在每个循环后都不会更新。是否有我忘记实现的 onUpdateListener?
【问题讨论】:
标签: xml animation kotlin rotation android-animation