我对android dev很新,想知道,我该如何选择手机的当前主题。我正在使用Galaxy Tab进行开发,当前主题是一个漂亮的白色主题(例如,如果我进入设置菜单)。但是sdk中的默认主题似乎是Android.Black。
我不想硬编码任何选择,让应用程序使用手机/标签上选择的任何一个...
答案 0 :(得分:21)
我不确定你的问题到底是什么,所以我将分两部分回答:
主题自动(默认情况下)设置为当前设备/用户选择的任何系统主题。如果未定义style或嵌套theme属性,则您的应用将设置为反映系统样式。例如,如果主题的默认字体颜色为#AFAFAF,则应用的默认字体颜色也将为#AFAFAF,除非样式或主题资源另有指定。
你提到你喜欢Galaxy标签上漂亮的白色主题。你是对的,不同版本的android使用不同的系统主题,包括字体和背景。
要获取当前主题(以确定它是否是您想要的主题),只需使用getApplication().getTheme()
即可。如果这是你想要的主题,你不必做任何事情。如果要应用逻辑并以编程方式设置主题,请使用getApplication().setTheme([theme])
方法进行更改。
您还可以为各个活动和AndroidManifest.xml文件指定应用程序范围的主题和主题,如下所示:
//for themes defined in res/values/style.xml
<application android:theme="@style/myApplicationTheme">
<activity android:theme="@style/myApplicationTheme">
//for system themes
<application android:theme="@android:style/Theme.Light">
<activity android:theme="@android:style/Theme.Light">
并且,与往常一样,对于单个视图元素。
如果您要实施特定的系统主题,请务必查看complete theme specifications。这些将列出所有系统主题以及每个主题的所有已定义样式元素,以便您可以使用所需主题或创建自己的变体。
如果您特别喜欢灯光系统主题,可以使用
为您的应用程序设置<application android:theme="@android:style/Theme.Light">