temas tema studio samsung poner paleta letras letra iconos google fuente fondo como colores color chrome cambiar android colors android-theme

android - studio - ¿Cómo cambiar el color del texto predeterminado usando un tema personalizado?



como poner temas en drive (4)

Cuando creas una aplicación, se creará un archivo llamado styles.xml en tu carpeta res / values. Si cambia los estilos, puede cambiar el fondo, el color del texto, etc. para todos sus diseños. De esta forma, no tiene que entrar en cada diseño individual y cambiarlo manualmente.

styles.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Theme.AppBaseTheme" parent="@android:style/Theme.Light"> <item name="android:editTextColor">#295055</item> <item name="android:textColorPrimary">#295055</item> <item name="android:textColorSecondary">#295055</item> <item name="android:textColorTertiary">#295055</item> <item name="android:textColorPrimaryInverse">#295055</item> <item name="android:textColorSecondaryInverse">#295055</item> <item name="android:textColorTertiaryInverse">#295055</item> <item name="android:windowBackground">@drawable/custom_background</item> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style>

parent="@android:style/Theme.Light" son los colores nativos de Google. Aquí hay una referencia de cuáles son los estilos nativos: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml

El estilo predeterminado de Android también se llama "Tema". Entonces lo llamaste tema probablemente confundió el programa.

name="Theme.AppBaseTheme" significa que está creando un estilo que hereda todos los estilos de parent="@android:style/Theme.Light" . Esta parte puede ignorar a menos que desee heredar de AppBaseTheme nuevamente. = <style name="AppTheme" parent="AppBaseTheme">

@ drawable / custom_background es una imagen personalizada que coloqué en la carpeta del dibujo. Es una imagen png de 300x300.

# 295055 es un color azul oscuro.

Mi código cambia el fondo y el color del texto. Para el texto del Botón, mira a través de las páginas originales de Google (el enlace que te di más arriba).

Luego, en el Manifiesto de Android, recuerda incluir el código:

<application android:theme="@style/Theme.AppBaseTheme">

Lo que intento debería ser bastante fácil con los temas, pero no puedo encontrar la manera de hacerlo: quiero que todo el texto sea blanco de manera predeterminada en mi aplicación. Creé un tema personalizado en theme.xml:

<style name="Theme" parent="@android:Theme"> </style> <style name="TextAppearance.Theme" parent="@android:TextAppearance.Theme"> <item name="android:textColor">#ffffffff</item> </style>

y configurarlo para toda la aplicación:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/Theme">

Pero las etiquetas siguen siendo negras. ¿Qué falta?

PD: ¿Cómo puedo, además, definir estilos para diferentes tamaños de texto, que se aplicarán por widget? ¿Es algo así?

<style name="Theme.smallText"> <item name="android:textSize">12dp</item> </style>

actualizar

Eché un vistazo a themes.xml en Android SDK, que muestra cómo configurar el estilo de texto para un tema:

<item name="textAppearance">@android:style/TextAppearance</item>

En mi caso, debería funcionar con esta definición:

<style name="Theme" parent="@android:Theme"> <item name="android:textAppearance">@style/MyText</item> </style> <style name="MyText" parent="@android:style/TextAppearance"> <item name="android:textColor">#ffffffff</item> </style>

Sin embargo, todavía no funciona.

Acabo de encontrar otra publicación para el mismo problema: http://groups.google.com/group/android-developers/browse_thread/thread/2897ccd0884546b9


En su Manifest necesita hacer referencia al nombre del style que tiene el item color de texto dentro de él. En este momento, solo hace referencia a un style vacío. Entonces en tu theme.xml haz solo este style :

<style name="Theme" parent="@android:style/TextAppearance"> <item name="android:textColor">#ffffffff</item> </style>

Y mantén tu referencia en el Manifest igual ( android:theme="@style/Theme" )

EDITAR :

theme.xml:

<style name="MyTheme" parent="@android:style/TextAppearance"> <item name="android:textColor">#ffffffff</item> <item name="android:textSize">12dp</item> </style>

Manifiesto:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/MyTheme">

Observe que combino el color y el tamaño del texto en el mismo style . Además, cambié el nombre del tema a MyTheme y ahora estoy haciendo referencia a eso en el Manifest . Y cambié a @android:style/TextAppearance para el valor parent .


No puede usar @android:style/TextAppearance como padre del tema de toda la aplicación; es por eso que la solución de koopaking3 parece bastante rota.

Para cambiar el color del texto predeterminado en todas partes en su aplicación utilizando un tema personalizado, intente algo como esto. Funciona al menos en Android 4.0+ (API nivel 14+).

res/values/themes.xml :

<resources> <style name="MyAppTheme" parent="android:Theme.Holo.Light"> <!-- Change default text colour from dark grey to black --> <item name="android:textColor">@android:color/black</item> </style> </resources>

Manifiesto:

<application ... android:theme="@style/MyAppTheme">

Actualizar

Una deficiencia con lo anterior es que los elementos del menú de desbordamiento de la barra de acciones desactivados también usan el color predeterminado, en lugar de estar atenuados. (Por supuesto, si no usa elementos de menú desactivados en ninguna parte de su aplicación, esto puede no importar).

Como aprendí al hacer esta pregunta , una mejor manera es definir el color con un dibujo :

<item name="android:textColor">@drawable/default_text_color</item>

... con res/drawable/default_text_color.xml especifica el state_enabled="false" separado state_enabled="false" :

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:color="@android:color/darker_gray"/> <item android:color="@android:color/black"/> </selector>


<color name="white">#FFFFFF</color> <style name="Mytext" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">20sp</item> <item name="android:textColor">@color/white</item> <item name="android:textStyle">bold</item> <item name="android:typeface">sans</item> </style>

prueba este ...