为什么ObjectAnimator.cancel()并不总是有效?

时间:2013-12-13 17:41:22

标签: android animation

因此,在使用cancel()时,有一些关于动画未结束的问题。您还需要在视图上调用clearAnimation。有人可以解释为什么会这样吗?对我来说也很奇怪,View需要了解它的动画效果。

2 个答案:

答案 0 :(得分:0)

您可以调用清除动画来重置视图用于在动画期间转换其画布的变换矩阵。主要的问题是旧的Android动画系统是垃圾,因为它依赖于动画快照"实际观点。 对于取消,当你调用取消时会发生什么,你停止应用动画步骤的runnable。当然,您无法确定动画停止的状态

答案 1 :(得分:0)

要明确:

  • 视图动画框架,a.k.a"旧动画框架",仅动画视图的翻译,而不是实际属性。因此,假设您在X维度上为视图的位置设置动画:视图的X属性的值保持不变。

    与您的问题相关,这意味着取消动画会将视图绘制回原始位置。因此动画取消时无关紧要。

  • Android 3.0中引入的对象动画可动画实际属性。这意味着当您取消动画时,视图将保持在其相关位置。所以你可能不知道什么时候动画被取消了,但是你可以清楚地找到它现在画的地方。

  • 如果您需要旧版Android的对象动画,并且坦率地说为什么要采用其他方式,您可以使用9OldAndroids库。

关于动画框架here之间的差异。