Android Establecer valores de textColor como Global
Estoy haciendo algunos tutoriales y traté de azar el textColor. Esto funciona bien utilizando el atributo en cada Widget de la disposición xml o el atributo de estilo. Pero me preguntaba si es posible definir un textColor global, por lo que veo que no lo es.
He encontrado una solución en estas páginas:
- Recurso para descargar temas / estilos de aplicación de Android?
- A veces: <nine-patch> requiere un atributo src válido
- ActionBarSherlock menú de texto del panel de menú duro
- No se puede reemplazar el estilo switchStyle y NumberPicker en Android
- Spinner con elementos de varias líneas superpone la visualización de elementos seleccionados en Froyo
http://www.therealjoshua.com/2012/01/styling-android-with-defaults/
Understanding Android Themes and Styles
En mi pequeño programa estaba usando un EditText, RadioButton y Button. Si establezco el TextAppearance de cada Singel Widget con un bloque de estilo con el padre @android: TextAppearance los widgets perdieron sus otros atributos. Así que busqué el style.xml y theme.xml y encontré una solución muy corta:
<resources> <style name="MyTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:editTextColor">@android:color/white</item> <item name="android:textColorPrimaryDisableOnly">#FFFFFF</item> <item name="android:color/primary_text_light">#FFFFFF</item> </style> </resources>
A pesar de que en el theme.xml se utiliza el color predefinido
<style name="TextAppearance.Widget.Button" parent="TextAppearance.Small.Inverse"> <item name="android:textColor">@android:color/primary_text_light_nodisable</item> </style>
Mi primera pregunta: ¿Hay una forma de sobrescribir el valor de @android: color / primary_text_light_nodisable como hice con los otros atributos?
En realidad creo que he resuelto el problema por mí mismo:
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="MyTheme" parent="android:Theme.Light"> <item name="android:textAppearance">@style/MyTextAppearance</item> <item name="android:textAppearanceButton">@style/MyTextAppearanceButton</item> <item name="android:editTextStyle">@style/MyEditTextStyle</item> <item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item> </style> <style name="MyTextAppearance" parent="@android:style/TextAppearance"> <item name="android:textColor">@android:color/white</item> </style> <style name="MyTextAppearanceButton" parent="@android:style/TextAppearance.Widget.Button"> <item name="android:textColor">@android:color/white</item> </style> <style name="MyEditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:textColor">@android:color/white</item> </style> <style name="MyRadioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton"> <item name="android:textColor">@android:color/white</item> </style> </resources>
Así que mi segunda pregunta es, si esta es la manera correcta o hay un corto camino para cambiar el color del texto globaly?
Althoug Creo que la definición de todo esto en xml es el método más limpio, quería saber si usted sugiere para manipular esto a través de los métodos de clase?
Lo siento, soy bastante nuevo para Java y Android de programación y gracias por su ayuda!
- Barra de herramientas de AppCompat popupTheme no se utiliza en ShareAction MenuItem
- ¿Por qué el atributo de onload del elemento de enlace no es fiable para los navegadores de acciones de Android?
- ScrollView: Cambia el color del efecto de borde con Holo
- La barra de acción se ve cortada mientras se utiliza Theme.AppCompat.Dialog
- Modificar estilos para EditText en Android
- Android Material recolorado Subtexto de EditText
- Base.Widget.AppCompat.Button vs Widget.AppCompat.Button
- Creación de estilo predeterminado con atributos personalizados
Puede crear un colors.xml bajo res / values y declarar sus colores globales desde aquí.
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="scheme">#007BB3</color> <color name="blue">#0000FF</color> <color name="white">#FFFFFF</color> <color name="grey">#C1C1C1</color> </resources>