如何在使用动画制作器激活其某些属性后将视图重置为原始状态?

时间:2015-06-16 05:39:16

标签: android animation objectanimator viewpropertyanimator

我正在使用 动画师(ObjectAnimator) 来为视图设置一些属性 (缩放,旋转) 的动画。

当ObjectAnimators设置为

目标视图时,可以正常设置动画。

但是在一段时间后,还需要查看原始位置 (重置)

我尝试取消()动画师,但它只取消了动画并且没有重置视图。

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

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

Trying to reset values from Property Animator to be used in recycler view

Android O中的好消息可以更好地支持

答案 2 :(得分:0)

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


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

我希望它能对某人有所帮助。

答案 3 :(得分:-1)

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