android - style - Cambiar el color de la flecha desplegable de Spinner en XML
spinner color android (6)
Hay tres formas de lograr eso.
1. A través del código:
En tu xml, asegúrate de que tu spinner tenga una identificación. Digamos que tenemos un spinner con id "spinner".
En su código, agregue lo siguiente en su onCreate ():
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);
donde el color definido es el rojo en colors.xml en la carpeta de valores.
2. A través de xml:
Para API 21+:
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/red" />
o si usa la biblioteca de soporte, puede usar:
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
3. A través de drawables:
Puede usar esta herramienta en línea: http://android-holo-colors.com
Esto generará obsequios personalizados para cualquier vista que desee con su color preferido. Asegúrate de seleccionar spinner, luego descarga los recursos.
Como escribí en mi pregunta, quiero cambiar el color de la flecha desplegable (la flecha predeterminada, no una flecha personalizada o algo así) de un Spinner
en XML , pero el problema es que no pude encontrar nada para hacer referencia a él desde el XML
.
¿Es posible? Si es así, ¿cómo puedo cambiar el color?
Gracias por adelantado.
Me sorprende que nadie lo haya señalado, pero puedes simplemente subclasificar Widget.AppCompat.Spinner
y cambiar backgroundTint
<style name="Spinner" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/spinnerTint</item>
</style>
y aplicarlo al Spinner
<Spinner
style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown" />
prueba esto:
spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);
use el atributo backgroundTint
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
/>
si min_SDK <21 (Lollipop) debe usar AppCompatSpinner
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/white"
/>
Si ( API 21+ ) {
puedes usar directamente android:backgroundTint="@color/color"
, dentro de tu Spinner:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/color" />
} else {
crear su propio estilo:
<style name="spinner_style" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/color</item>
</style>
luego en Spinner:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/spinner_style"/>
}
Nota: puede usar el método de estilo en todas las API.
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroudTint="#00000" />