我如何添加弹跳动画以查看会下降和上升的动画,但它只能执行一次。

如果我在给定的持续时间内将y设置为反弹插值器
  但我只想一次,但应该向下说5 dp,直到当前视图为止

    ObjectAnimator animator = ObjectAnimator.ofFloat(targetView, "translationY", 0, 50, 0);
    animator.setInterpolator(new BounceInterpolator());
    animator.setDuration(200);
    animator.start();

最佳答案

使用OvershootInterpolator

文件:


  插补器,变化向前冲,并超出
  然后返回最后一个值。


您可以使用带有tension参数的构造函数来调整过冲的张力:

OvershootInterpolator(float tension)



  张力:超调量。当张力等于0.0f时,没有
  过冲,内插器变为简单的减速
  内插器。


tension的默认值为2.0f

使用ViewPropertyAnimator的示例:

targetView.animate()
    .translationY(50)
    .setInterpolator(new OvershootInterpolator())
    .setDuration(200);


使用ObjectAnimator:

ObjectAnimator animator = ObjectAnimator.ofFloat(targetView, "translationY", 0, 50); // pass only start and end values.
    animator.setInterpolator(new OvershootInterpolator());
    animator.setDuration(200);
    animator.start();

10-08 10:56