我有一个关于 Android 中的 ObjectAnimator 的问题。我正在尝试建模弹跳效果,其中视图向上滑动(减小 Y 值)并在相同量“n”后返回,然后视图再次上下滑动,但这次滑动“n/2”(因此距离的一半)。
因此,先是较大的弹跳,然后是较浅的弹跳 - 即,当 Mac 图标想要引起您的注意时,它会在托盘中执行此操作。
这是我到目前为止所尝试过的(假设v
is a View
):
float y = v.getTranslationY(),distance = 20F;
AnimatorSet s = new AnimatorSet();
s.play(ObjectAnimator.ofFloat(v, "translationY", y- distance).setDuration(500))
.before(ObjectAnimator.ofFloat(v, "translationY", y).setDuration(500))
.before(ObjectAnimator.ofFloat(v, "translationY", y- (distance/2)).setDuration(500))
.before(ObjectAnimator.ofFloat(v, "translationY", y).setDuration(500));
s.start();
忽略代码质量,它是 POC!我希望这能起作用,但它似乎只“弹跳”一次,就好像它组合了动画一样,尽管使用了.before()
.
您能否向我展示如何创建复杂的 AnimatorSet 链,这些链不会合并为一个,因为我似乎遗漏了一些东西?
BONUS:为了获得额外的分数,我如何设置 AnimatorSet 的重复?
非常感谢!