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

У меня есть индикатор выполнения, который показывает текущую и максимальную громкость. И мне нужно изменить цвет полоски, если заполненность меньше 90% (текущий / максимальный вес). Как лучше всего это сделать?

1
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете изменить цвет индикатора выполнения во время выполнения с помощью следующего кода:

final ProgressBar progressBar = findViewById(R.id.pb);
Drawable progressDrawable = progressBar.getIndeterminateDrawable();

if (progressDrawable != null && progressBar.getProgress() < 90) {
    final Drawable mutateDrawable = progressDrawable.mutate();
    DrawableCompat.setTint(mutateDrawable, Color.RED);
    progressBar.setProgressDrawable(mutateDrawable);
} else {
    final Drawable mutateDrawable = progressDrawable.mutate();
    DrawableCompat.setTint(mutateDrawable, Color.GREEN);
    progressBar.setProgressDrawable(mutateDrawable);
}

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