Анимационная сумка с некоторыми изображениями - PullRequest
0 голосов
/ 28 мая 2019

У меня проблема с анимацией Android. Когда я щелкаю первый раз в моем ImageView, у моего изображения есть вращение, но когда я щелкаю второй раз в моем ImageView, вращение не работает. Почему это случилось?

Мой метод ротации в коде Java:

private boolean tomIsInvisible = false;



public void eraseTom(View view) {
    ImageView tom = findViewById(R.id.tom);
    ImageView jerry = findViewById(R.id.jerry);

    if (tomIsInvisible) {

        tom.animate()
                .rotation(3600)
                .scaleX(1)
                .scaleY(1)
                .alpha(1)
                .setDuration(3000);

        jerry.animate()
                .rotation(3600)
                .scaleX(0)
                .scaleY(0)
                .alpha(0)
                .setDuration(3000);

        tomIsInvisible = false;

    } else if(!tomIsInvisible) {

        tom.animate()
                .rotation(3600)
                .scaleX(0)
                .scaleY(0)
                .alpha(0)
                .setDuration(3000);

        jerry.animate()
                .rotation(3600)
                .alpha(1)
                .scaleX(1)
                .scaleY(1)
                .setDuration(3000);

        tomIsInvisible = true;
    }
}

Другие методы в моем ImageView работают правильно.

1 Ответ

0 голосов
/ 29 мая 2019

Когда вы звоните rotation(3600) в первый раз, он оживляет rotation с 0 до 3600.(вращение вида по умолчанию 0).После первой анимации rotation равно 3600 (ViewPropertyAnimator меняет фактическое значение свойства, пока оно анимирует объекты).Поэтому, когда вы звоните rotation(3600) во второй раз rotation вашего взгляда, уже 3600, и вы пытаетесь оживить его до 3600.Вот почему нет никаких визуальных изменений.Существует вращениеBy метод, который применяет указанное значение для просмотра поворота, попробуйте его использовать.

view.animate().rotationBy(3600)

Другое решение состоит в том, чтобы анимировать от 0 до 360 и в конце представления сброса анимации повернуть на0.

...