我正在尝试制作动画并捕获动画的结尾,因此我可以在其结论处做些事情。我一直在网上寻找例子,这就是我所发现的。不幸的是,它没有编译,我也不知道我在做什么错。任何帮助将不胜感激。预先感谢。
discView是正在动画的视图。 animationDropSpeed只是一个数字 mainActivity是指向我的应用程序的mainActivity对象的指针。
val discAnimator = ObjectAnimator.ofFloat(discView, "translationY", 723f)
discAnimator.setDuration(animationDropSpeed)
discAnimator.addListener(object : Animator.AnimatorListener{
override fun onAnimationEnd(p0: Animator?) {
Toast.makeText(mainActivity,"Animation Started",Toast.LENGTH_SHORT).show();
}
})
discAnimator.start()
答案 0 :(得分:1)
您可以通过此操作设置监听器
ivSample.animation.setAnimationListener(
object:Animation.AnimationListener{
override fun onAnimationRepeat(animation: Animation?) {
TODO("not implemented")
}
override fun onAnimationEnd(animation: Animation?) {
TODO("not implemented")
}
override fun onAnimationStart(animation: Animation?) {
TODO("not implemented")
}
}
)
但是,有时候我更喜欢这样:
ivSample.animate().translationY(723f).setDuration(500) // set duration
ivSample.postDelayed({
// TODO Doing my Job Here
}, 600) // set a delay more than the duration
这在计时方面更加灵活,并且可以访问父类中的参数,因为它使用的是lambda表达式。
根据您的需要选择一个。