Tu peux spécifier une couleur à la progressBar avec :
progressBar.getProgressDrawable().setColorFilter(Color.RED, android.graphics.PorterDuff.Mode.SRC_IN); // ici en rouge
voir une teinte si API >= 21 :
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
Donc tu devrais être en mesure de faire quelque chose comme :
1 2 3
| progressBar.setProgress(value); // value entre 0 et 100
int color = getGradient(value);
progressBar.getProgressDrawable().setColorFilter(color, android.graphics.PorterDuff.Mode.SRC_IN); |
Avec la génération de couleur :
1 2 3 4
| int getGradient(int value){
double val = value / 100;
return Color.HSVToColor(new float[]{(float)val*120f,1f,1f});
} |
Partager