如何在android上选择当前主题

Mla*_*vic 4 android

我对android dev很新,想知道,我该如何选择手机的当前主题.我正在使用Galaxy Tab进行开发,当前主题是一个漂亮的白色主题(例如,如果我进入设置菜单).但是sdk中的默认主题似乎是Android.Black.

我不想硬编码任何选择,让应用程序使用手机/标签上选择的任何一个...

jos*_*ain 21

我不确定你的问题到底是什么,所以我将分两部分回答:

如何让应用程序在Android上选择当前主题?

主题自动(默认情况下)设置为当前设备/用户选择的任何系统主题.如果未定义样式或嵌套主题属性,则应将应用程序设置为反映系统样式.例如,如果主题的默认字体颜色为#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">
Run Code Online (Sandbox Code Playgroud)

并且,与往常一样,对于个别视图元素.

如果您希望实现特定的系统主题,请务必查看完整的主题规范.这些将列出所有系统主题以及每个主题的所有已定义样式元素,以便您可以使用所需主题或创建自己的变体.

如果您特别喜欢灯光系统主题,可以使用它为您的应用程序设置

<application android:theme="@android:style/Theme.Light">
Run Code Online (Sandbox Code Playgroud)