Changer la couleur de la flèche vers le bas de Spinner en XML
comme je l'ai écrit dans ma question, je veux changer la couleur de la flèche descendante (la flèche par défaut, pas une flèche personnalisée ou quelque chose comme ça) d'un Spinner
EN XML, mais le problème est que je n'ai rien trouvé à y faire référence à partir du XML
.
Est-il possible? Si oui, comment puis-je changer la couleur?
Merci à l'avance.
6 réponses
Il y a trois façons d'y parvenir.
1. À l'aide de code:
dans votre xml, assurez-vous que votre spinner a un id. Disons que nous avons un spinner avec 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ù rouge est votre couleur définie dans couleurs.xml dans le dossier des valeurs.
2. Par 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 prise en charge, vous pouvez utiliser:
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
3. Grâce à un drawable:
Vous pouvez utiliser cet outil en ligne: http://android-holo-colors.com
cela générera des tirages personnalisés pour n'importe quelle vue que vous voulez avec votre couleur préférée. Sélectionnez 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 changez backgroundTint
<style name="Spinner" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/spinnerTint</item>
</style>
et l'appliquer à l' Spinner
<Spinner
style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown" />
utiliser l'attribut backgroundtin
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
/>
AppCompatSpinner
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/white"
/>
essaye ceci:
spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);
Si ( API 21+) {
vous pouvez utiliser directement android:backgroundTint="@color/color"
, à l'intérieur de votre Spinner:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/color" />
} sinon {
créer 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 style dans toutes les API.
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroudTint="#00000" />