ValueAnimator не делает недействительным корректно отрисовку

Я пытаюсь создать свой собственный индикатор выполнения для приложения для Android. Я создал рисунок с контуром и двумя концентрическими кругами. Идея состоит в том, что красная часть заполнит окружность круга, и когда она достигнет отметки 0 градусов, она снова запустится. Проблема в том, что круг хорошо заполняется, как и должно быть, но он не перезапускается. Управление этим поведением - ValueAnimator, который каким-то образом делает недействительным рисование, которое находится в представлении изображения. Вот картина того, чего должен пытаться сделать ничья. введите описание изображения здесь

Я старался изо всех сил, чтобы настроить код для этого Value-Animator, но он не делает то, что должен. Вот код Value-Animator:

ValueAnimator val = ValueAnimatro.ofInt(0,360);
val.setDuration(1000);
val.setRepeatCount(ValueAnimator.INFINITE);
val.setRepeatMode(ValueAnimator.REPEAT);

val.addUpdateListener(...){

public void onAnimationUpdate(ValueAnimator c){

int a = (int)updatedAnimation.getAnimatedValue();
if(a!=0){
                float b = 1f*a;
                ProgressShow.sweepAngle = b;

                image45.invalidateDrawable(image45.getDrawable());
            }

Теперь ProgressShow - это имя класса drawable, а ProgressShow.sweepAngle - это переменная, которая используется внутри метода onCanvas при рисовании пути. Он используется следующим образом:

path.arcTo(0,sweepAngle);

переменная sweepAngle постоянно изменяется внутри метода onAnimationUpdate объекта ValueAnimator.

Любые идеи, почему красное кольцо останавливается около 360 градусов, когда оно должно перезапуститься, исходя из того, что ValueAnimator имеет бесконечное число повторений и режим повторного перезапуска.

спасибо за любой совет

0 ответов

Другие вопросы по тегам