android - 如何在android上选择当前主题

标签 android

我是 android 开发的新手,想知道如何选择手机的当前主题。我正在 Galaxy Tab 上开发,当前主题是一个漂亮的白色主题(例如,如果我进入设置菜单)。但是sdk中默认的主题好像是Android.Black。

我宁愿不对任何选择进行硬编码,而是让应用程序使用在手机/标签页上选择的任何一个...

最佳答案

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

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

主题自动(默认)设置为当前设备/用户选择的任何系统主题。如果没有 style或嵌套 theme定义了属性,然后您的应用程序将被设置为反射(reflect)系统样式。例如,如果主题的默认字体颜色是#AFAFAF,则您应用的默认字体颜色也将是#AFAFAF,除非样式或主题资源另有指定。

如果我不喜欢当前的主题,我该如何设置自己的主题?

您提到您喜欢 Galaxy 选项卡上漂亮的白色主题。您是正确的,不同版本的 android 使用不同的系统主题,包括字体和背景。

要获取当前主题(确定它是否是您想要的主题),只需使用 getApplication().getTheme()。如果这是您想要的主题,则无需执行任何操作。如果您想应用逻辑并以编程方式设置主题,请使用 getApplication().setTheme([theme]) 方法来更改它。

您还可以指定应用程序范围的主题和个别 Activity 的主题以及您的 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">

而且,一如既往,针对单个 View 元素。

如果您希望实现特定的系统主题,请务必查看 complete theme specifications .这些将列出所有系统主题以及每个主题的所有已定义样式元素,因此您可以使用所需的主题或制作自己的变体。

如果您特别喜欢灯光系统主题,可以使用

为您的应用程序设置它
<application android:theme="@android:style/Theme.Light">

关于android - 如何在android上选择当前主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089184/

相关文章:

android - 动画 ImageView 被覆盖 View 重叠

Android 相机权限 -> PlayStore

java - AndEngine:只是黑色背景,字体不显示

java - Android DownloadManager 获取文件名

Android 应用内结算最低价格

android - 如何在android中创建多于一行的EditText

android - SharedPreferences Android 中的 NullPointerException

android - 尽管设置了手机静音模式,但在 Android 通知中播放声音

android - 在 Froyo 上 move 文件

android - 将与菜单相关的事件称为 "callback function"是否有意义?