2010-12-14 95 views
0

Sous Android 2.1, les préférences et autres boîtes de dialogue ont un texte blanc/bleu. En regardant les valeurs de thème, je vois des choses comme textColorPrimary et textColorSecondary. Si je référence ces couleurs dans ma mise en page XML, avec quelque chose comme:Comment obtenir le texte de style bleu dans 2.1 Contacts ou préférences

android:textColor="?android:attr/textColorSecondary" 

Je vois que du texte blanc (j'ai essayé textColorPrimary, textColorTertiary et textColorHint aussi).

Je n'ai aucune valeur de thème indiquée dans mon fichier manifeste. Je présume que cela signifie que j'utilise le thème par défaut du système.

Tout cela dit, est-ce que j'aboie le mauvais arbre avec des références textColor *?

Répondre

1

tous les attributs textColor * pointent vers color selectors. Si vous voulez changer la couleur de votre thème, vous devez effectuer les étapes suivantes:

1) Créer un sélecteur de couleur, créez un fichier nommé (par exemple) primary_color.xml et mettre sous res \ color

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:color="@android:color/bright_foreground_light_disabled"/> 
    <item android:state_window_focused="false" android:color="@android:color/bright_foreground_light"/> 
    <item android:state_pressed="true" android:color="@android:color/bright_foreground_light"/> 
    <item android:state_selected="true" android:color="@android:color/bright_foreground_light"/> 
    <item android:color="@android:color/bright_foreground_light"/> <!-- not selected --> 

2) Dans votre fichier styles.xml, créez un thème pour votre activité qui fait référence à votre sélecteur de couleur nouvelle:

<style name="ActivityStyle" parent="android:Theme"> 
     <item name="android:textColorPrimary">@color/primary_color</item> 
     <!-- Add more styles here as necessary --> 
</style> 

3) Dans votre AndroidManifest.xml, appliquez le nouveau thème à toute activité que vous voulez:

<activity android:name=".activities.MedicationsActivity" 
     android:theme="@style/ActivityStyle"> 
</activity> 
+0

Merci pour le commentaire Lior. Mais ce que je suis vraiment après est tout à fait le contraire. Je veux utiliser la couleur de thème existante. J'ai codé en dur une couleur bleue qui correspond au bleu utilisé par les paramètres et les contacts, mais je veux utiliser une référence de thème doux. – Tom