Android – AnimatorSet,Object Animator – Bounce动画链是合并的吗?

我在 Android中有一个关于ObjectAnimator的问题.我试图模拟一个Bounce效果,其中View向上滑动(降低Y值)并在向后滑动相同数量的’n’,然后View再次向上和向下滑动,但这次是’n / 2′(所以一半的距离).

所以更大的反弹,然后是更浅的反弹 – 也就是说,当它需要你注意时,Mac图标在托盘中的作用.

这是我到目前为止所尝试的(假设v是一个视图):

float y = v.getTranslationY(),distance = 20F;

                AnimatorSet s = new AnimatorSet();
                s.play(ObjectAnimator.ofFloat(v,"translationY",y- distance).setDuration(500))
                .before(ObjectAnimator.ofFloat(v,y).setDuration(500))
                .before(ObjectAnimator.ofFloat(v,y- (distance/2)).setDuration(500))
                .before(ObjectAnimator.ofFloat(v,y).setDuration(500));
                s.start();

忽略代码质量,这是一个POC!我希望这会起作用,但它似乎只是“反弹”一次,好像它结合了动画,尽管使用了.before().

你能否告诉我如何创建复杂的AnimatorSet链,它们不会合并为一个,因为我似乎错过了什么?

奖励:对于额外的积分,我如何设置AnimatorSet的重复?

非常感谢!

解决方法

好的,所以我最终找到了一种相当简洁的方法来通过忽略流畅的构建器来实现顺序动画,并且只使用playSequentially()方法,这样:
AnimatorSet as = new AnimatorSet();
as.playSequentially(ObjectAnimator.ofFloat(...),// anim 1
                    ObjectAnimator.ofFloat(...),// anim 2
                    ObjectAnimator.ofFloat(...),// anim 3
                    ObjectAnimator.ofFloat(...)); // anim 4
as.setDuration(600);
as.start();

尽管如此,除了在侦听器中涉及回调onAnimationEnd的肮脏黑客之外,仍然没有重复.必须是一种更简单的方式,所以也许有人可以在知道其中时对其进行编辑.

无论如何,希望以上帮助某人.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...