web-dev-qa-db-fra.com

Comment changer la couleur du pouce dans la barre de recherche?

J'ai la valeur par défaut seekbar dans mon Android application. J'ai remarqué que lorsque le thumb sur le seekbar est maintenu, il devient jaune. Au lieu de cela, je veux qu'il devienne bleu lorsqu'il est tenu. Comment cela peut-il être fait? Je m'excuse s'il s'agit d'une question de base, je suis nouveau dans Android. Merci.

19
vergil corleone

Si vous n'aimez pas le pouce par défaut, vous devrez créer le vôtre Drawable , que vous pouvez ensuite définir le pouce dans le code avec quelque chose comme:

Drawable thumb = getResources().getDrawable( R.drawable.myThumb );
SeekBar mSeekBar = (SeekBar) findViewById(R.id.mySeekBar);
mSeekbar.setThumb(thumb);

Ou vous pouvez définir le pouce en XML avec:

<SeekBar 
    ...
    Android:thumb="@drawable/seek_thumb" />

Le Drawable réel peut être une image, une forme ou tout autre type de Drawable que vous pourriez souhaiter. Si vous voulez que le pouce change d'apparence lorsque vous appuyez dessus, vous voudrez créer un State List Drawable .

16
Tanis.7x

Utilisez des filtres d'image pour changer la couleur des tableaux par défaut de la liste d'état (y compris SeekBar):

  // Change seekbar color to green.
  SeekBar sb = (SeekBar) findViewById(R.id.seekBar1);
  sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
  sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);

La méthode getThumb n'est disponible que depuis l'API 16+ (Jelly bean).

28
zavidovych

Pas besoin de style supplémentaire. Android le prend en charge via xml. Ajoutez simplement Android: thumbTint = "@ color/yourColor" dans votre barre de recherche.

Pour par exemple.

<SeekBar
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content"
     Android:max="100"
     Android:thumbTint="@color/red"
     Android:progress="0" />
19
Kuldeep Sakhiya