我正在開發一個android應用程序。 我想添加一個功能,讓用戶在運行時更改應用程序的主題。如何在Android中更改應用程序的主題?
我嘗試在我的主要活動中使用以下語句。
setTheme(android.R.style.Theme_Black);
但是,它只是將對話框更改爲帶白色文本的黑色背景。
如何才能將所有組件的主題更改爲黑色,包括操作欄和片段?
我正在開發一個android應用程序。 我想添加一個功能,讓用戶在運行時更改應用程序的主題。如何在Android中更改應用程序的主題?
我嘗試在我的主要活動中使用以下語句。
setTheme(android.R.style.Theme_Black);
但是,它只是將對話框更改爲帶白色文本的黑色背景。
如何才能將所有組件的主題更改爲黑色,包括操作欄和片段?
對於全局運行時的變化,還有什麼工作是擴大Application並設置主題(也許在onCreate()
,因爲這個類也有考慮將其擴展ContextWrapper
的setTheme()
方法。
確保申報您的應用類在清單:
<application
android:name="com.yourpackage.ApplicationClass" >
</application>
然而,由於推廣應用時通常是皺起了眉頭,我寧願設置主題對每個Activity
基礎,因爲活動被摧毀和重建的方式往往比Application
對象。也許做一個靜態的方法,從SharedPreferences
返回當前的主題。
使用Theme_Holo
而不是Theme_Black
,請記住,如果您希望一切都變爲黑色,則需要創建自己的主題。
我會建議使用的東西,如讀入開發者文檔http://developer.android.com/guide/topics/ui/themes.html
你可以從你的清單做了很多主題化的樣式和主題部分:
<activity android:theme="@style/android:Theme.Dark">