我有一个关于 Android 中的 ObjectAnimator 的问题。我正在尝试模拟一个反弹效果,其中视图向上滑动(减少 Y 值)并在相同的量“n”之后向后滑动,然后视图再次上下滑动,但这次是“n/2”(所以距离的一半)。
因此,较大的反弹,然后是较浅的反弹 - 即 Mac 图标在需要您注意时在托盘中所做的事情。
这是我到目前为止尝试过的(假设v
是 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 链,因为我似乎遗漏了一些东西?
奖励:对于加分,我如何设置 AnimatorSet 的重复?
非常感谢!