2016-07-27 3 views
0

Я реализовал круговой индикатор выполнения, который заполняется за 10 секунд. Тем не менее, я думаю, что вначале бар заполняется быстрее, и в результате он замедляется (анимация его заполнения) по мере того, как время продолжается. Кроме того, в конце он останавливается на мгновение, а затем, наконец, заканчивается. Код, который я использовал, я получил от первого ответа здесь: How to Create a circular progressbar in Android which rotates on it?Круговой индикатор выполнения программы Android замедляется при его продвижении

И тогда мой код, который начинается строка прогресса:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar); 
ObjectAnimator animation = ObjectAnimator.ofInt (progressBar, "progress", 0, 100); 
animation.setDuration (10000); 
animation.setInterpolator (new DecelerateInterpolator()); 
animation.start(); 

Как я могу сделать анимацию более гладкой?

+0

Может быть, это может помочь [ссылка] (https://github.com/Pedramrn/CircularProgressBar) –

+0

Похоже, что было бы намного больше кода, чтобы добиться того, что у меня уже есть. Думаю, было бы лучше, если бы оно было более плавным, но я хотел бы знать, почему у меня такая проблема. – Jill

+1

его из-за DecelerateInterpolator. Вместо этого используйте LinearInterpolator. – dudego

ответ

3

Это потому, что вы используете DecelerateInterpolator. Интерполятор определяет скорость изменения анимации. Это позволяет ускорить, замедлить основные эффекты анимации, затормозить, повторить и т. Д.

Подробнее о интерполяторе here.

Вы можете использовать LinearInterpolator или AccelerateInterpolator в зависимости от того, что вам подходит.

Смежные вопросы