texto style studio color cambiar android android-layout colors android-spinner android-color

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" />