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é.
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
<?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>
<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>
<?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!!!
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>
É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>
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
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"/>
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>
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" />