Je voulais créer une barre de recherche qui ressemble à celle de l'image ci-dessous.
En utilisant la barre de recherche par défaut, j'obtiendrai quelque chose comme ceci:
Donc, ce dont j'ai besoin, c'est de ne changer que la couleur. Je n'ai besoin d'aucun style supplémentaire. Existe-t-il une approche simple pour ce faire ou dois-je créer mon dessin personnalisé.?
J'ai essayé d'en construire un personnalisé, mais je n'ai pas pu obtenir exactement celui indiqué ci-dessus. Après avoir utilisé un dessin personnalisé, ce que j'obtiens est comme indiqué ci-dessous:
Si j'ai besoin de créer celui personnalisé, veuillez suggérer comment réduire la largeur de la ligne de progression ainsi que la forme.
mon implémentation personnalisée:
background_fill.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="90"
android:centerColor="#FF555555"
android:endColor="#FF555555"
android:startColor="#FF555555" />
<corners android:radius="1dp" />
<stroke
android:width="1dp"
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:angle="90"
android:centerColor="#FFB80000"
android:endColor="#FFFF4400"
android:startColor="#FF470000" />
<corners android:radius="1dp" />
<stroke
android:width="1dp"
android:color="#50999999" />
<stroke
android:width="1dp"
android:color="#70555555" />
</shape>
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>
thumb.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<gradient
android:angle="270"
android:endColor="#E5492A"
android:startColor="#E5492A" />
<size
android:height="20dp"
android:width="20dp" />
</shape>
barre de recherche:
<SeekBar
android:id="@+id/seekBarDistance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="88dp"
android:progressDrawable="@drawable/progress"
android:thumb="@drawable/thumb" >
</SeekBar>
la source
Réponses:
Je voudrais extraire les drawables et xml du code source Android et changer sa couleur en rouge. Voici un exemple de la façon dont j'ai terminé cela pour les tirages mdpi:
Personnalisé
red_scrubber_control.xml
(ajouter à res / drawable):Douane:
red_scrubber_progress.xml
Copiez ensuite les drawables requis à partir du code source Android, j'ai pris ce lien
Il est bon de copier ces drawables pour chaque hdpi, mdpi, xhdpi. Par exemple, j'utilise uniquement mdpi:
Ensuite, en utilisant Photoshop, changez la couleur du bleu au rouge:
red_scrubber_control_disabled_holo.png:
red_scrubber_control_focused_holo.png:
red_scrubber_control_normal_holo.png:
red_scrubber_control_pressed_holo.png:
red_scrubber_primary_holo.9.png:
red_scrubber_secondary_holo.9.png:
red_scrubber_track_holo_light.9.png:
Ajoutez SeekBar à la mise en page:
Résultat:
la source
red_scrubber_control
j'utilise le drawable pour le pouce, je tombe en panne. Si tous les tiroirs dans le sélecteur sont identiques, cela fonctionne bien, mais si je change l'un d'eux, j'obtiens uneResources$NotFoundException: File .../red_scrubber_control.xml from drawaable resource ID...
pensée?@dimen
pour définir la taille du pouce en fonction de l'écran?Ma réponse est inspirée de la réponse d'Andras Balázs Lajtha qui permet de travailler sans fichier xml
la source
android:progressTint="@color/my_color" android:thumbTint="@color/another_color"
Si vous voulez exactement la même barre mais en rouge, vous pouvez ajouter un filtre de couleur PorterDuff par programmation. Vous pouvez obtenir chaque dessin que vous souhaitez coloriser grâce aux méthodes de la classe de base ProgressBar . Ensuite, définissez un filtre de couleur pour cela.
Si le réglage de couleur souhaité ne peut pas être effectué via un filtre Porter Duff, vous pouvez spécifier votre propre filtre de couleur .
la source
Style de matériau personnalisé Android pour la barre de recherche, pour d'autres personnalisations de la barre de recherche http://www.zoftino.com/android-seekbar-and-custom-seekbar-examples
la source
colorControlActivated
c'est le bon paramètre pour le pouce? Ça devrait l'êtrethumbTint
.Remplacez simplement les atributtes de couleur par votre couleur
background.xml
progress.xml
style.xml
thumb.xml
la source
Google a rendu cela plus facile dans le SDK 21. Nous avons maintenant des attributs pour spécifier les couleurs de teinte du pouce:
http://developer.android.com/reference/android/widget/AbsSeekBar.html#attr_android:thumbTint http://developer.android.com/reference/android/widget/AbsSeekBar.html#attr_android:thumbTintMode
la source
Toutes ces réponses sont obsolètes.
En 2019, il est plus facile de personnaliser votre barre de recherche à votre couleur préférée en la changeant
ProgressBar
enStyliser la couleur de votre barre de recherche par programme, essayez le code suivant
la source
Comme mentionné ci-dessus (@andrew), créer un SeekBar personnalisé est super facile avec ce site - http://android-holo-colors.com/
Activez simplement SeekBar, choisissez la couleur, recevez toutes les ressources et copiez-les dans le projet. Appliquez-les ensuite en xml, par exemple:
la source
production:
dans le fichier de mise en page:
drawable / progress.xml
drawable / background_fill.xml
drawable / progress_fill.xml
drawable / custom_thumb.xml
colours.xml
la source
Il suffit de régler
C'est tout
la source
fonctionne comme même la réponse sélectionnée. pas besoin de créer de fichier dessinable ou autre. (IN 5.0 uniquement)
la source
Par défaut, Android associera la couleur de progression de votre curseur à
valeur dans votre styles.xml . Ensuite, pour définir une image de pouce de curseur personnalisé, utilisez simplement ce code dans le bloc de mise en page XML de votre SeekBar :
la source
la source
Pour les API <21 (et> = 21), vous pouvez utiliser la réponse de @Ahamadullah Saikat ou https://www.lvguowei.me/post/customize-android-seekbar-color/ .
drawable / seek_bar_ruler.xml:
drawable / seek_bar_slider.xml:
la source
Si vous utilisez SeekBar par défaut fourni par Android Sdk, c'est un moyen simple de changer la couleur de cela. allez simplement dans color.xml dans /res/values/colors.xml et changez colorAccent.
la source
Je change la
background_fill.xml
et le
progress_fill.xml
pour faire le fond et la
1dp
hauteur de progression .la source
Un moyen simple de changer la couleur de la barre de recherche ...
Style: Progress_color
changement de classe java ProgressDrawable ()
la source
Si vous regardez les ressources Android, la barre de recherche utilise en fait des images.
Vous devez faire un dessinable qui est transparent en haut et en bas pour dire 10px et la ligne centrale 5px est visible.
Reportez-vous à l'image ci-jointe. Vous devez le convertir en NinePatch.
la source
Pour ceux qui utilisent la liaison de données:
Ajoutez la méthode statique suivante à n'importe quelle classe
Ajoutez un
app:thumbTintCompat
attribut à votre SeekBarC'est tout. Vous pouvez maintenant utiliser
app:thumbTintCompat
avecSeekBar
. La teinte de progression peut être configurée de la même manière.Remarque: cette méthode est également compatible avec les appareils pré-sucettes.
la source
Petite correction à la réponse de @ arnav-rao:
pour vous assurer que le pouce est bien coloré, utilisez:
ici android: thumbTint colore en fait le "pouce"
la source
consultez ce tutoriel très bien
https://www.lvguowei.me/post/customize-android-seekbar-color/
Facile :
puis un fichier de style:
la source
Je voulais créer un style pour la barre de recherche, puis ajouter le style à un thème afin de pouvoir l'appliquer à un thème entier tout en permettant à un sous-style de le remplacer. Voici ce que j'ai fait:
Ce qui précède définit le style de la barre de recherche de thème sur bleu pour tous les appareils 21+, y compris Samsung (qui ont besoin que la fonction de recherche de style de barre soit appliquée en plus d'Android: SeeBarStyle; je ne sais pas pourquoi, mais j'ai vu ce problème de première main). Si vous souhaitez que toutes les barres de recherche conservent le style de thème et n'appliquent le style de barre de recherche verte qu'à quelques widgets, ajoutez ce qui suit au widget de votre choix:
la source
Avec la bibliothèque de composants de matériaux version 1.2.0, vous pouvez utiliser le nouveau
Slider
composant.Vous pouvez remplacer la couleur par défaut en utilisant quelque chose comme:
Sinon, vous pouvez utiliser ces attributs dans la mise en page pour définir une couleur ou un sélecteur de couleurs:
ou vous pouvez utiliser un style personnalisé:
la source
Vous pouvez également procéder de cette façon:
J'espère que cela vous aidera!
la source