2010-06-10 153 views
4

我想在我的應用程序中提供用戶可設置的顏色。白色背景上的黑色背景和黑色文本的白色文本。我有多種佈局,包括許多列表視圖,包括標準和自定義適配器。人們建議使用主題,但我沒有運氣改變所有佈局的文字顏色。任何人都可以給我看一個實際的主題佈局,可以做到這一點?我可以使用myscreen.setBackGroundColor(xx)輕鬆更改背景顏色,但是當我嘗試使用主題更改文本時,它也會更改微調器文本。Android改變主題顏色

回答

13

使用

<item name="android:spinnerStyle">@style/StandardSpinner</item> 
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item> 
在你的主題

,這將覆蓋文本樣式。

你的風格會是這個樣子:

<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

只是一些額外的信息, 爲了你的主題指向您的應用程序,你需要在AndroidManifest.xml中

前對其進行定義。

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

你應該重用一些默認的風格屬性,所以宣佈了Android默認主題作爲價值觀/ styles.xml你

的父主題,或者放到你的主題文件

<?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>