2012-05-23 40 views
5

我已經構建Android應用程序支持​​android:targetSdkVersion="15"。我使用我自定義的主題繼承Android默認主題。向後兼容Android Holo主題

所以現在我想改變整個應用程序的主題全息主題。任何人都可以幫助我。

+1

你是說你想在運行時以編程方式更改它?預蜂窩設備呢?你想讓他們擁有Holo.Theme嗎?那麼你需要像Holoeverywhere這樣的東西。 https://github.com/ChristopheVersieux/HoloEverywhere –

+0

鏈接到HoloEverywhere現在是:https://github.com/Prototik/HoloEverywhere –

回答

1

只需修改在AndroidManifest.xml應用程序標記它所包含的主題:

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

例如像這樣:

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

或者你也可以做到在每個活動的基礎。以下是相關文檔: https://developer.android.com/guide/topics/ui/themes.html

+0

我嘗試這種方法,但它給出了錯誤:錯誤:找不到匹配給定名稱的資源(在'主題'中使用'@ style/Theme.Holo'值)。 – Sanath

+0

這是否發生在預蜂窩設備上?如果是這樣,你添加了Holoeverywhere圖書館嗎?當使用Holoeverywhere時,你必須使用「@ style/Theme.HoloEverywhereDark」 –

+0

這不是運行時錯誤。這個錯誤給eclipse.so我不能建立項目。我會嘗試HoloEverywhere主題。感謝您的幫助。 – Sanath

10

您可以通過使用不同樣式的XML來實現「樣式選擇器」。

/res/**values**/styles.xml只要定義一個名爲 「StyleSelector」 或類似的東西的主題:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="ThemeSelector" parent="@android:style/Theme.Black"> 
    ... Your theme definitions 
    </style> 
</resources> 

然後創建一個/res/**values-v11**/styles.xml

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

現在只是 「@style/ThemeSelector」 運用你的主題,讓Android做到這一點。 在較舊的Android版本上,您的主題定義將在Holo-Support的新版本中加載,您的主題將來自Holo。

+0

儘管android文檔提供了相同的信息,但即使在指定Theme.Black後,我仍然在eclipse中發生錯誤。我到處搜索,但看起來沒有解決方案。我也不想使用HoloEveryWhere等任何第三方庫。 – Manohar

+0

爲什麼不能@android:風格/主題呢? – Jeff

3

嘗試使用HoloEverywhere作爲父主題。

+1

斷開的鏈接。現在是:https://github.com/Prototik/HoloEverywhere –

+0

謝謝,更新鏈接 – galex