Comme je l'ai écrit dans ma question, je souhaite modifier la couleur de la flèche déroulante (la flèche par défaut, pas une flèche personnalisée ou quelque chose du genre) d'un Spinner
en XML , mais le problème est que je ne pouvais ne trouve rien qui puisse s'y référer dans XML
.
C'est possible? Si oui, comment puis-je changer la couleur?
Merci d'avance.
Il y a trois façons d'y parvenir.
1. Par code:
Dans votre fichier xml, assurez-vous que votre spinner a un identifiant. Disons que nous avons un spinner avec l'id "spinner".
Dans votre code, ajoutez ce qui suit dans votre onCreate ():
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);
où le rouge est votre couleur définie dans colors.xml dans le dossier des valeurs.
2. À travers XML:
Pour API 21+:
<Spinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:backgroundTint="@color/red" />
ou si vous utilisez la bibliothèque de support, vous pouvez utiliser:
<Android.support.v7.widget.AppCompatSpinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
3. Traversables:
Vous pouvez utiliser cet outil en ligne: http://Android-holo-colors.com
Cela générera des dessins personnalisés pour la vue de votre choix avec la couleur de votre choix. Assurez-vous de sélectionner spinner, puis téléchargez les ressources.
Je suis surpris que personne ne l’ait signalé, mais vous pouvez simplement sous-classe Widget.AppCompat.Spinner
et changer backgroundTint
<style name="Spinner" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/spinnerTint</item>
</style>
et l'appliquer à la Spinner
<Spinner
style="@style/Spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:spinnerMode="dropdown" />
utiliser l'attribut backgroundTint
<Spinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:backgroundTint="@color/white"
/>
si min_SDK <21 (Lollipop), vous devez utiliser AppCompatSpinner
<Android.support.v7.widget.AppCompatSpinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:backgroundTint="@color/white"
/>
Si( API 21+ ) {
vous pouvez utiliser directement Android:backgroundTint="@color/color"
dans votre Spinner:
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:backgroundTint="@color/color" />
}autre {
créez votre propre style:
<style name="spinner_style" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/color</item>
</style>
puis dans Spinner:
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
style="@style/spinner_style"/>
}
Remarque: vous pouvez utiliser la méthode de style dans toutes les API.
essaye ça:
spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:backgroudTint="#00000" />
Utilisez this dependency pour créer un disque très agréable et facile et Utilisez "app: arrowTint =" @ color/green "pour changer la couleur de la flèche