Как запустить код в каждый раз в Android
Я хочу показать анимацию в своем приложении, и я хочу показывать эту анимацию каждые 3000 м / с.
Я пишу ниже код, но в этом коде показать только один раз.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
YoYo.with(Techniques.Bounce)
.duration(1500)
.playOn(arrowHelpImage);
}
}, 3000);
Как я могу редактировать свой код и показывать каждые 3000 м / с?
2 ответа
Решение
Вы могли бы использовать что-то вроде этого. изменить анимации, используемые ниже. эта анимация будет бесконечной. предоставить анимацию на конце Listner. Измените продолжительность анимации на 3000 мс и используйте ее в handler.it.
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);
Поместите ниже код в вашем классе.
private Handler handler;
private Runnable runnable;
ниже код в вас создать
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);
}
}