2011-02-01 68 views
20

我正在準備我的應用程序與蜂窩平滑工作。我有一個關於android主題的小美學問題。根據安卓版本更改主題

對於蜂巢,建議使用以下主題。

android:theme="@android:style/Theme.Holo.Light" 

如何使我的應用程序在以前的版本中使用時使用另一個主題?

在此先感謝

回答

32

編輯:更新了3.0 SDK的發佈版本。要做到這一點


一種方法是設置<uses-sdk android:targetSdkVersion="11">。您還應該將此置於<application>定義之上。這將告訴系統在可用時使用全息主題,否則使用默認主題。

另一種方法是定義一個主題,如MyTheme,它根據API級別/操作系統版本從不同的主題繼承。你可以使用resource directory qualifiers來做到這一點。

你的目錄結構看起來是這樣的:

res/ 
    values/ 
    styles.xml 
    values-v11/ 
    styles.xml 

res/values/styles.xml的內容會是這樣的:

<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Light"> 
    ... 
    </style> 
</resources> 

res/values-v11/styles.xml內容會是這樣的:

<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    ... 
    </style> 
</resources> 

請注意,在futu但是,Holo主題可能並不總是通過API級別來理解,所以稍後您可能需要調整此方法。 您也可以使用其他目錄限定符,如values-large-v11等。這完全取決於你。

+0

真棒,感謝羅馬。我很好奇你的意思,「請注意,未來,Holo主題可能並不總是通過API級別來理解」。你的意思是說,在未來的版本中,Holo主題可能會有所不同或者是全新的主題?因此開發者可能需要適應更多的主題?這使得使用NoTitleBar簡單地執行諸如使用默認主題(無論是Theme還是Theme.Holo)很困難。無論如何,謝謝你的澄清;我期待着ICS – 2011-11-28 22:41:37