web-dev-qa-db-fra.com

Barre de recherche, changement de couleur de chemin du jaune au blanc

J'ai deux questions:

1) comment changer la couleur de la barre de recherche (chemin) du jaune (couleur par défaut) au blanc. Ce que je veux dire, c’est que pendant que je glisse le pouce, la ligne traversée passe du gris au jaune. Je veux que le tracé/la ligne reste gris ou blanc .. En gros, je veux que le pouce se déplace sans changement de couleur dans la barre de recherche.

2) Comment changer le pouce de seekbar du rectangle au cercle/sphère/forme ronde. 

tout pointeur sera apprécié. 

51
David Prun

Je veux compléter la réponse ci-dessus pour les nouveaux venus dans le système,

les xmls manquants (background_fill, progress_fill et progress pourraient ressembler à cela pour un dégradé rouge

progress.xml

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
        <item 
            Android:id="@Android:id/background" 
            Android:drawable="@drawable/background_fill" />

        <item Android:id="@Android:id/progress">
           <clip Android:drawable="@drawable/progress_fill" />
        </item>
  </layer-list>

background_fill.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <gradient 
        Android:startColor="#FF555555" 
        Android:centerColor="#FF555555"
        Android:endColor="#FF555555" 
        Android:angle="90" />

    <corners Android:radius="5px" />

    <stroke 
        Android:width="2dp" 
        Android:color="#50999999" />

    <stroke 
        Android:width="1dp" 
        Android:color="#70555555" />
</shape>

progress_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <gradient 
        Android:startColor="#FF470000" 
        Android:centerColor="#FFB80000"
        Android:endColor="#FFFF4400" 
        Android:angle="180" />

    <corners Android:radius="5px" />

    <stroke 
            Android:width="2dp" 
            Android:color="#50999999" />

    <stroke 
            Android:width="1dp" 
            Android:color="#70555555" />
</shape>

je n'ai pas terminé l'implémentation pour Android: le pouce, le pouce sera donc toujours celui d'origine

Par conséquent, nous devons simplement supprimer à nouveau cette ligne de notre mise en page XML où nous définissons la barre de recherche.

Android:thumb="@drawable/thumb"

Bonne chance!!!

94
Arnold

Vous devez définir les propriétés XML SeekBar:

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

Où progrès ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@Android:id/background" 
    Android:drawable="@drawable/background_fill" />

<item Android:id="@Android:id/progress">
    <clip Android:drawable="@drawable/progress_fill" />
</item>
</layer-list> 

et le pouce est

<?xml version="1.0" encoding="utf-8"?>    
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
   <item Android:drawable="@drawable/thumb_fill" />
</selector>
68
Asahi

Étant donné que SeekBar utilise colorAccent par défaut, vous pouvez créer un nouveau style avec votre couleur personnalisée sous la forme colorAccent, puis utiliser l'attribut theme pour l'appliquer à SeekBar.

<SeekBar>
    .
    .
    Android:theme="@style/MySeekBarTheme"
    .
</SeekBar>

dans le style @:

 <style name="MySeekBarTheme" parent="Widget.AppCompat.SeekBar" >
        <item name="colorAccent">#ffff00</item>
 </style>
24
hedisam
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
15

Vous pouvez simplement ajouter une teinte à partir du niveau 21 de l'API.

Ajoutez ces propriétés à l’élément seekbar:

Android: progressTint = "@ Android: couleur/blanc" Android: thumbTint = "@ Android: couleur/blanc"

Résultat final:

<SeekBar
    Android:id="@+id/is"
    Android:layout_width="match_parent"
    Android:max="100"
    Android:progressTint="@Android:color/white"
    Android:thumbTint="@Android:color/white"/>
7
quent

Il suffit de changer la couleur d'accent de votre style 

<style name="TickMarkSeekBar" parent="Theme.KefTheme">
        <item name="tickMark">@drawable/tickmark</item>
        <item name="thumbTint">@Android:color/white</item>
        <item name="colorAccent">@Android:color/white</item>
    </style>
0
RexSplode

1. Créez un fichier XML dessinable: Nommez-le: progress_drawable

<?xml version="1.0" encoding="UTF-8"?>

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:shape="line">

<stroke Android:width="1dp" Android:color="#fff"/>

</shape>

2. Attribuez-le à Seekbar

            <SeekBar
                    Android:id="@+id/slider_1"
                    Android:progressDrawable="@drawable/progress_drawable"
                    Android:layout_width="180dp"
                    Android:layout_height="32dp"
                    Android:layout_gravity="center"
                    Android:rotation="270" />
0
Abhishek Sengupta