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

Ran*_*jit 6 animation android animationdrawable

当我完成我的活动时,我应该使用clearAnimation()还是stop()使用任何剩余的AnimationDrawable物体?

Ivo*_*nov 4

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

clearAnimation()是 的方法View.class。它将停止视图的动画,此外:

  • 如果有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);
    }
}
Run Code Online (Sandbox Code Playgroud)