Как реализовать сложную анимацию? - PullRequest
0 голосов
/ 14 октября 2019

Я просматривал анимацию верхней стрелки вращающегося колеса для анимации Android, и все, что я нашел, это вращающееся колесо (https://github.com/adef145/SpinningWheelAndroid), но верхняя стрелка - это палка.

Например,Мне нужна анимация со стрелкой вверх, которая находится в приложении для единства "https://play.google.com/store/apps/details?id=es.treebit.decisionroulette",, как мне ее анимировать?

Заранее спасибо.

1 Ответ

0 голосов
/ 14 октября 2019

Есть несколько способов анимировать представления в Android без использования внешних библиотек. Одним из способов является ObjectAnimator. Это будет вращать ImageView бесконечно:

ImageView imageView = dialogView.findViewById(R.id.imageView);

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f);
    objectAnimator.setRepeatCount(ObjectAnimator.INFINITE);
    objectAnimator.setDuration(500);
    objectAnimator.start();

Остановите его с помощью:

if(objectAnimator != null && objectAnimator.isStarted()) {
            objectAnimator.end();
            objectAnimator.cancel();
        }

Или даже проще (но не проверено):

imageView.animate().rotationBy(360f).start();

Редактировать: Checkout AnimatorListenerзапустить анимацию стрелки, когда колесо завершит поворот на X градусов.

new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {

            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        }
...