Подтвердить что ты не робот

Бесконечный ObjectAnimator с интерполятором... Как ускорить только начальный старт?

У меня есть объектный аниматор с бесконечным режимом повтора. Я хочу ускорить его только в первый раз, когда он начинается... не каждый раз, когда он повторяется

Как это можно достичь?

мой код:

universeMovement1 = ObjectAnimator.ofFloat(universeImageView, "x", 0, sw);  
        universeMovement1.setDuration(UNIVERSE_MOVEMENT_TIME);
        universeMovement1.setRepeatCount(ObjectAnimator.INFINITE);
        universeMovement1.setRepeatMode(ObjectAnimator.RESTART);
        universeMovement1.setInterpolator(new AccelerateInterpolator());
4b9b3361

Ответ 1

Добавьте слушателя в свою анимацию с помощью метода onAnimationRepeat и установите интерполятор обратно в LinearInterpolator или что угодно. Следовательно, когда он повторится, он больше не ускорится.

animation.addListener(new AnimatorListenerAdapter(){
        @Override
        public void onAnimationRepeat(Animator animation) {
            animation.setInterpolator(new LinearInterpolator());
        }
    });

Ответ 2

используйте это:

objectAnimator.setInterpolator(new LinearInterpolator());