Программно изменить цвет индикатора выполнения

Я хочу изменять цвета ProgressBar в Android только программно. Моя проблема в том, как я могу установить другой цвет для прогресса и другой цвет для «заливки» - части индикатора выполнения.

Пример:

  • Прогресс должен быть зеленым

  • Последняя часть должна быть красной

это должно выглядеть так


person kimbl    schedule 06.08.2015    source источник
comment
взгляните на этот tiemenschut.com/how-to-customize- Android-индикаторы выполнения   -  person Deepak Goyal    schedule 06.08.2015


Ответы (3)


Нет возможности сделать это в банкомате. Для этого вам нужно разработать собственное представление.

Создайте настраиваемый вид, расширяющий макет, и используйте макет для фона индикатора выполнения. Добавьте еще один вид (начиная с ширины 0dp) для вашего растущего прогресса.

Добавьте общедоступный метод для установки текущего прогресса и отрегулируйте ширину представления прогресса.

person Fabian Köbel    schedule 12.08.2015

Вы не можете применить собственный стиль к Progressbar с официальным API.

Однако вы могли бы сделать это с помощью отражения. Progressbar имеет частное поле mProgressTintInfo, которое имеет следующие поля: mProgressTintList и mProgressBackgroundTintList, которые являются ColorStateLists, и mHasProgressTint и mHasProgressBackgroundTint, которые являются логическими.

Я никогда не пробовал это сам, он может не работать вообще или работать только на определенных уровнях / устройствах API.

person F43nd1r    schedule 06.08.2015

Извините за мой английский, я говорю по-испански. Вы можете реализовать собственный индикатор выполнения и переопределить метод ondraw и использовать 2 закрашенных прямоугольника и 2 закрашенных круга с вашими собственными цветами.

снова супер извините за мой английский, ..

person Enzo    schedule 06.08.2015