我正在开发一个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">