android中clearAnimation()和stop()有什么区别?

时间:2012-02-22 09:25:29

标签: android animation animationdrawable

当我完成活动时,是否应该对剩余的clearAnimation()个对象使用stop()AnimationDrawable

1 个答案:

答案 0 :(得分:1)

stop()停止动画,仅此而已。由于stop()是AnimationDrawable.class的方法,因此您可以在要停止AnimationDrawable的动画时使用它,但不能在任何View上使用它。

clearAnimation()View.class的方法。它将停止View的动画,另外:

  • 如果定义了AnimationListener,则将调用AnimationListener.onAnimationEnd(Animation animation)

  • 如果定义了Handler,则将调用Handler.postAtFrontOfQueue(Runnable r)

这是呼叫层次结构: View.clearAnimation()-> Animation.detach()-> Animation.fireAnimationEnd()fireAnimationEnd()方法:

private void fireAnimationEnd() {
    if (mListener != null) {
        if (mListenerHandler == null) mListener.onAnimationEnd(this);
        else mListenerHandler.postAtFrontOfQueue(mOnEnd);
    }
}