AnimationListener和AnimatorListener有什么区别?

时间:2013-12-18 22:57:29

标签: android animation

我想使用此处指定的AnimatorListenerAdapter

http://developer.android.com/reference/android/animation/AnimatorListenerAdapter.html

但是,它实现了AnimatorListener接口。在View上,例如ImageView,有一个名为setAnimationListener()的方法,但它作为参数需要AnimationListener。似乎没有关联的AnimationListenerAdapter可用。

我的问题是AnimatorListenerAnimationListener之间有什么区别,为什么存在两个独立的接口?看起来他们都提供相同的功能。我能看到的唯一区别是其中一个是在后来的API版本中引入的。

2 个答案:

答案 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) {

    }

}