44

我正在使用动画师(ObjectAnimator)为视图的几个属性(缩放、旋转)设置动画。

将 ObjectAnimators 设置为目标视图时,它会正确设置动画。

但是有一个额外的要求是在一段时间后查看原始位置 (重置)

我试图取消()动画师,但它只会取消动画并且不会重置视图。

可能的解决方案:创建另一个与初始动画师相反的动画师。

有没有其他方法可以重置它?

4

4 回答 4

0

我的观点也有同样的问题。所以我用这个技巧解决了这个问题。所以我们假设我们有一个视图,点击它后应用动画。


          viewLayout.arrow_back.setOnClickListener {arrow ->
            arrow.animate().rotationXBy(50F) // this is a just simple anim not so usefull
                .start()
            arrow.isEnabled = false
        }

我希望它会帮助某人。

于 2020-12-08T16:54:47.317 回答
0

请参阅我提出的解决方案,因为我在回收站视图中的视图内的动画有类似的问题,所以我必须找到一种方法来重置它们:

尝试从 Property Animator 重置值以在回收站视图中使用

Android O 中的好消息 这些将得到更好的支持

于 2017-08-16T18:39:15.153 回答
-1

你的意思是停止正在运行的动画?如果是这样,请调用clearAnimation()以从您调用的视图中删除动画startAnimation(); 如果您的意思是在动画结束后将视图重置为其原始外观,则始终setFillAfter(false);为动画。

于 2015-06-16T05:45:26.957 回答
-1

我遇到了同样的问题,因为我使用了动画视图ViewPropertyAnimatoraddView()并且removeView()一次又一次地不创建新视图,但是视图可以显示一次,当您删除视图时,您addview()再次调用,它没有显示,但是您看到属性可见性是可见的,animationListener也可以调用。它很奇怪。

于 2016-11-21T06:57:51.660 回答