首页 > 解决方案 > 如何根据进度条的饱满度更改进度条的颜色

问题描述

我有一个进度条指示器,它具有当前和最大音量。如果丰满度低于 90%(当前/最大重量),我需要更改条的颜色。做这个的最好方式是什么?

标签: android

解决方案


您可以使用以下代码在运行时更改进度条颜色:

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);
}

推荐阅读