Comment changer la couleur du texte par défaut en utilisant un thème personnalisé?

Ce que j’essaie devrait être assez facile avec des thèmes, mais je ne peux pas savoir comment: je veux que tout le texte soit blanc par défaut dans mon application. J’ai créé un thème personnalisé dans theme.xml:

   #ffffffff  

et réglez-le pour toute l’application:

  

Mais les étiquettes sont toujours noires. Qu’est-ce qui manque?

PS: Comment définir des styles pour différentes tailles de texte, à appliquer par widget? Est-ce que quelque chose comme ça est correct?

  12dp  

mettre à jour

J’ai regardé themes.xml dans Android SDK, il montre comment définir le style de texte pour un thème:

 @android:style/TextAppearance 

Dans mon cas, cela devrait fonctionner avec cette définition:

  @style/MyText   #ffffffff  

Cependant, ne fonctionne toujours pas.

Je viens de trouver une autre publication pour le même problème: http://groups.google.com/group/android-developers/browse_thread/thread/2897ccd0884546b9

Dans votre Manifest vous devez faire référence au nom du style contenant l’ item couleur du texte. En ce moment, vous faites juste référence à un style vide. Donc, dans votre theme.xml, faites seulement ce style :

  

Et gardez vous la même référence dans le Manifest ( android:theme="@style/Theme" )

EDIT :

theme.xml:

  

Manifeste:

  

Notez que je combine la couleur et la taille du texte dans le même style . De plus, j’ai changé le nom du thème en MyTheme et je le référence maintenant dans le Manifest . Et j’ai changé pour @android:style/TextAppearance pour la valeur parent .

Lorsque vous créez une application, un fichier nommé styles.xml sera créé dans votre dossier res / values. Si vous modifiez les styles, vous pouvez modifier l’arrière-plan, la couleur du texte, etc. pour toutes vos mises en page. De cette façon, vous n’avez pas à entrer dans chaque disposition individuelle et à la modifier manuellement.

styles.xml:

     

parent="@android:style/Theme.Light" est les couleurs natives de Google. Voici une référence de ce que sont les styles natifs: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml

Le style Android par défaut est également appelé “Thème”. Donc, en l’appelant Thème, vous avez probablement confondu le programme.

name="Theme.AppBaseTheme" signifie que vous créez un style qui hérite de tous les styles de parent="@android:style/Theme.Light" . Cette partie, vous pouvez ignorer à moins que vous souhaitiez hériter à nouveau de AppBaseTheme. =

@ drawable / custom_background est une image personnalisée que j'ai placée dans le dossier du dessinable. C'est une image 300x300 png.

# 295055 est une couleur bleu foncé.

Mon code modifie l'arrière-plan et la couleur du texte. Pour le texte du bouton, veuillez consulter les stlyes natifs de Google (le lien que j'ai donné ci-dessus).

Ensuite, dans Android Manifest, n'oubliez pas d'inclure le code:

  

Vous ne pouvez pas utiliser @android:style/TextAppearance comme parent pour le thème de l’application entière; C’est pourquoi la solution de koopaking3 semble tout à fait brisée.

Pour changer la couleur du texte par défaut partout dans votre application en utilisant un thème personnalisé, essayez quelque chose comme ça. Fonctionne au moins sur Android 4.0+ (API niveau 14+).

res/values/themes.xml :

    

Manifeste:

  

Mettre à jour

Un inconvénient de ce qui précède est que les éléments du menu de dépassement de la barre d’action désactivés utilisent également la couleur par défaut, au lieu d’être grisés. (Bien sûr, si vous n’utilisez pas d’éléments de menu désactivés dans votre application, cela n’a pas d’importance.)

Comme je l’ai appris en posant cette question , une meilleure manière est de définir la couleur à l’aide d’un tirable :

 @drawable/default_text_color 

… avec res/drawable/default_text_color.xml spécifiant une state_enabled="false" distincte state_enabled="false" :

     
 #FFFFFF  

essaye celui-là …