2012-05-11 42 views
1

我希望我能解釋我在做什麼。實質上,我的用戶要求我在我的應用程序中允許使用不同的外觀,我希望我可以使用主題。android:我如何定義主題中的自定義顏色,可繪製等?

我希望我可以做這樣的事情:

<style name="NewTheme" parent="android:Theme.Dark"> 
    <item name="labelColor">#f90</item> 
    <item name="buttonColor">#fff</item> 
    <item name="buttonBg">@drawable/button</item> 
</style> 
<style name="OldTheme" parent="android:Theme.Dark"> 
    <item name="labelColor">#fa0</item> 
    <item name="buttonColor">#88f</item> 
    <item name="buttonBg">@drawable/button_old</item> 
</style> 

然後在我的styles.xml引用這些值:

<style name="labelStyle"> 
    <item name="android:textColor>@labelColor</item> 
</style> 
<style name="buttonStyle"> 
    <item name="android:textcolor">@buttonColor</item> 
    <item name="android:background">@buttonBg</item> 
</style> 

我知道這個語法是錯誤的,但可能是什麼正確的語法?基本上,我想創建一組屬性(顏色,背景和其他一些東西)並根據主題選擇它們。

+1

爲什麼不創建一個colors.xml,將所有的顏色集添加到它,並定義您的個別樣式引用您的顏色從XML?那一直對我有用。 –

+0

感謝您的幫助。簡短的回答結果是我需要在attrs.xml中定義我的元值,例如「」 –

+0

Siddharth,我可以將我的顏色放到colors.xml中,但是如何根據主題更改它們? –

回答

1

要在Android的主題和風格工作,你必須:

  1. 定義中的themes.xml一個或多個主題和設置的 您的樣式定義存在。

  2. 在attrs.xml中定義自定義屬性,a.k.a.自定義樣式。

  3. 描述自定義樣式的值在styles.xml中的值。

  4. 在您的佈局文件中,爲您的視圖提供一個樣式屬性,其中有一個 自定義樣式名稱作爲其值。

  5. 在AndroidManifest.xml或Activity的onCreate()中設置您的應用程序或活動的主題爲 。這是通過在調用setContentView()之前調用activity的onCreate()方法中的setTheme()來完成的。

  6. 要更改主題,只需重新啓動活動即可。

enter image description here

Iadvice你看看這tutorial它與所有的程序員要在Android主題工作涉及(文本顏色,文本格式,狀態列表繪製等)