MaterialProgressBar

Одним из самых красивых нововведений в Material Design стал новый прогрессбар. На момент написания статьи Support-библиотека не включает в себя данный элемент, поэтому мы воспользуемся сторонней библиотекой.

Библиотека, которую мы будем использовать называется Material-ish ProgressBar. Она позволяет пользователю максимально кастомизировать внешний вид прогрессбара: мы можем изменить цвет, размер, скорость вращение и многое другое.

Установка
<com.pnikosis.materialishprogress.ProgressWheel
    xmlns:wheel="http://schemas.android.com/apk/res-auto"
    android:id="@+id/progressBar"
    android:layout_width="40dp"
    android:layout_height="40dp"
    wheel:matProg_barColor="#5588FF"
    wheel:matProg_rimColor="#aaaaaa"
    wheel:matProg_spinSpeed="0.5"
    wheel:matProg_progressIndeterminate="true"
    wheel:matProg_linearProgress="true"
/>

matProg_barColor — цвет прогресса,
matProg_rimColor — цвет кольца
matProg_spinSpeed — скорость вращения прогрессбара
matProg_progressIndeterminate — бесконечный прогрессбар или нет
matProg_linearProgress — прогрессбар заполняется линейно

Устанавливаем прогресс

Установить значение прогрессбара можно вызвав метод setProgress(float). На вход можно подавать значения от 0 до 1 (т. е. 1/100 равна 1%).

Пример:

progressbar.setProgress("0.28f);

Здесь я установил значение на 28 процентов.

Если прогресс выполнения задачи нам не известен, то мы можем сделать прогрессбар бесконечным, вызвав у него метод split().
Пример:

progressbar.spin();

Примечание: при использовании прогрессбара советую ставить matProg_linearProgress=»true», иначе прогресс отображается криво.

Изменяем цвета программно

Изменить цвет прогресса и кольца можно из кода. Для этого есть методы setBarColor(int) и setRimColor(int).

Пример:

progressbar.setBarColor(Color.RED);
progressbar.setRimColor(Color.GRAY);
Устанавливаем слушатель

Если после заполнения прогрессбара нужно выполнять какие-либо действия, то мы можем сделать это, установив слушатель на прогрессбар. В качестве слушателя выступает интерфейс ProgressCallback с методом onProgressUpdate, который мы должны реализовать. Устанавливает слушатель метод setCallBack( ProgressCallback).

Пример:

progressBar.setCallback(new ProgressWheel.ProgressCallback() {
   @Override
   public void onProgressUpdate(float progress) {
      //ваш код
   }
});

Библиотека на GitHub: MaterialProgressBar.
Исходники примера: MaterialProgressBar.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *