2017-06-05 2 views
-2

J'ai un SeekBar dans l'une de mes activités dans mon application.Changer la couleur de la barre de recherche en fonction de la progression

Cette barre de recherche me donne une importance de l'objet que je crée. L'importance peut être de 0,1 ou 2.

Je voudrais changer de façon désinvolte la couleur de fond de mon SeekBar quand je l'utilise. Comment puis je faire ça ?

Voici les couleurs que je voudrais utiliser:

Importance 0: "# ff8080"

Importance 1: "# FF0000"

Importance 2: "# 4d0000"

Merci pour votre aide, et dites-moi si vous avez besoin de plus de code!

BarreImportance.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int i, boolean b) { 

      if(i==0) 
      { //it does not accept my colors.. 
       BarreImportance.getProgressDrawable().setColorFilter(Color.parseColor("#ff8080")); 
      } 
      if(i==1) 
      { 
     //it changes the whole background, not what I want...   BarreImportance.setBackgroundColor(Color.parseColor("#ff0000")); 

     } 
+0

Vous définissez un filtre de couleur dans une mauvaise façon. D'abord, appelez-le sur votre objet 'seekBar'. Deuxièmement, essayez quelque chose comme ceci: 'setColorFilter (Color.WHITE, PorterDuff.Mode.SRC_ATOP);' –

+0

oh merci! mais est-il possible de changer aussi la couleur du cercle? Parce que si l'importance est 0 je voudrais avoir la couleur au moins pour que l'utilisateur puisse reconnaître après .. – David

+0

seekBar.getThumb(). SetColorFilter (..) –

Répondre

1

Vous devez utiliser OnSeekBarChangeListener'sonProgressChanged rappel et changer la couleur de l'intérieur là comme ceci: mySeekBar.getProgressDrawable().setColorFilter(..) et mySeekBar.getThumb().setColorFilter(..)

+0

pouvez-vous me donner un exemple pour un = comme si l'importance est 0 s'il vous plaît? – David