我想使用此处指定的AnimatorListenerAdapter
:
http://developer.android.com/reference/android/animation/AnimatorListenerAdapter.html
但是,它实现了AnimatorListener
接口。在View
上,例如ImageView
,有一个名为setAnimationListener()
的方法,但它作为参数需要AnimationListener
。似乎没有关联的AnimationListenerAdapter
可用。
我的问题是AnimatorListener
和AnimationListener
之间有什么区别,为什么存在两个独立的接口?看起来他们都提供相同的功能。我能看到的唯一区别是其中一个是在后来的API版本中引入的。
答案 0 :(得分:5)
AnimationListener
适用于旧式View
动画,AnimatorListener
适用于新版(3.0版)Animator
API。
所有AnimatorListenerAdapter
都实现了AnimatorListener
接口而没有任何功能。您可以通过创建一个实现AnimationListenerAdapter
而没有任何功能的公共非final类来轻松地以相同的方式创建自己的AnimationListener
。
答案 1 :(得分:0)
对于像我们这样的懒惰人:
import android.view.animation.Animation
/**
* Adapter to reduce code implementation of Animation.AnimationListener when there are unused
* functions.
*/
open class AnimationListenerAdapter: Animation.AnimationListener {
/**
*
* Notifies the start of the animation.
*
* @param animation The started animation.
*/
override fun onAnimationStart(animation: Animation) {
}
/**
*
* Notifies the end of the animation. This callback is not invoked
* for animations with repeat count set to INFINITE.
*
* @param animation The animation which reached its end.
*/
override fun onAnimationEnd(animation: Animation) {
}
/**
*
* Notifies the repetition of the animation.
*
* @param animation The animation which was repeated.
*/
override fun onAnimationRepeat(animation: Animation) {
}
}