2010-06-10 4 views
4

J'essaie de fournir des couleurs personnalisables par l'utilisateur dans mon application. Texte blanc sur fond noir et texte noir sur fond blanc. J'ai plusieurs mises en page avec de nombreuses listes, à la fois des adaptateurs standard et personnalisés. Les gens ont suggéré d'utiliser des thèmes, mais je n'ai pas eu de chance de changer les couleurs du texte à travers toutes les mises en page. Quelqu'un peut-il me montrer une mise en page Thème réel qui peut accomplir cela? Je peux facilement changer les couleurs d'arrière-plan en utilisant myscreen.setBackGroundColor (xx), mais quand j'essaye de changer le texte avec un thème, cela change aussi le texte de spinner.Android changer les couleurs avec des thèmes

Répondre

13

Utilisez

<item name="android:spinnerStyle">@style/StandardSpinner</item> 
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item> 

dans votre thème, ceci surpassera le style de texte.

Votre style ressemblera à quelque chose comme ceci:

<style name="StandardSpinner" parent="@android:style/Widget.Spinner"> 
    <item name="android:background">@drawable/spinner</item> 
</style> 

<style name="StandardSpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
</style> 

<style name="StandardSpinnerDropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
</style> 
0

Juste quelques informations supplémentaires, afin de vous orienter thème à votre application, vous devez définir au AndroidManifest.xml

ex.

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

vous devez réutiliser certaines des propriétés des styles de valeurs par défaut, déclareraient le thème par défaut android comme thème parent de la vôtre

à des valeurs/styles.xml ou où est votre fichier thème

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme" parent="@android:style/Theme"> 
     <!-- Widget styles --> 
     <item name="android:spinnerStyle">@android:style/Widget.Spinner</item> 
     <item name="android:spinnerDropDownItemStyle">@style/Widget.DropDownItem.Spinner</item> 
     <item name="android:spinnerItemStyle">@android:style/Widget.TextView.SpinnerItem</item> 
    </style> 
Questions connexes