1

我想在我的应用程序中显示动画,并且我想每 3000m/s 显示这个动画。
我写了下面的代码,但在这段代码中只显示一次。

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        YoYo.with(Techniques.Bounce)
                .duration(1500)
                .playOn(arrowHelpImage);
    }
}, 3000);

我如何编辑我的代码并显示每个 3000m/s ?

4

2 回答 2

0

你可以使用这样的东西。更改下面使用的动画。这个动画将无限运行。提供结束Listner的动画。将动画持续时间更改为 3000 毫秒并在处理程序中使用它。它将起作用

YoYo.with(Techniques.Bounce)
    .duration(1200) 
    .interpolate(new AccelerateDecelerateInterpolator())
    .withListener(new Animator.AnimatorListener() {

        @Override 
        public void onAnimationStart(Animator animation) {}

        @Override 
        public void onAnimationEnd(Animator animation) {
          YoYo.with(Techniques.Bounce)
          .duration(1200) 
          .interpolate(new AccelerateDecelerateInterpolator())
          .withListener(this).playOn(arrowHelpImage);
       }

        @Override 
        public void onAnimationCancel(Animator animation) {}

        @Override 
        public void onAnimationRepeat(Animator animation) {}
    }).playOn(arrowHelpImage);
于 2016-12-11T07:05:34.620 回答
0

将以下代码放入您的课程中。

private Handler handler;
private Runnable runnable;

下面的代码在你oncreate

 handler = new Handler();
        runnable = new Runnable() {
            @Override
            public void run() {


 YoYo.with(Techniques.Bounce)
                .duration(1500)
                .playOn(arrowHelpImage);
                 handler.postDelayed(runnable, Constants.SPLASH_DURATION);
            }
        };
        handler.postDelayed(runnable, Constants.SPLASH_DURATION);


@Override
protected void onDestroy() {
    super.onDestroy();
    //Close the handler and the process of splash screen.
    if (handler != null && runnable != null) {
        handler.removeCallbacks(runnable);
    }
}
于 2016-12-11T07:16:11.797 回答