gpt4 book ai didi

android - 如何从 layout.xml 中获取当前应用主题的颜色?

转载 作者:行者123 更新时间:2023-11-29 17:15:17 28 4
gpt4 key购买 nike

我制作了一个仅使用一个主题的应用程序,但现在我希望用户能够在运行时更改它。由于某些布局元素需要使用特定颜色进行着色,因此我所有的 layout.xml-s 都具有 android:background="@color/colorBackground" 之类的属性。

目前,我在colors.xml 中制作了一个调色板。它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#607D8B</color>
<color name="colorPrimaryDark">#455A64</color>
<color name="colorAccent">#FF9800</color>
<color name="colorBackground">#FAFAFA</color>
<color name="colorTextSubtitle">#F0F0F0</color>
<color name="colorTextSubtitleBackground">#AA000000</color>
</resources>

但是,这样我只能有一个主题。我正在考虑做一些事情,比如让颜色成为主题样式的一部分(所有主题都将具有相同的颜色项目,但具有不同的值)。

我怎样才能让我的布局文件检测到应用程序的当前主题并从那里获取颜色名称?所以像 android:background="[currentTheme.colorBackground]" 这样我就可以拥有多种样式,然后在它们之间切换。

我考虑过将主题放在共享首选项或类似的东西中,然后在覆盖 onCreate() 方法时以编程方式更改颜色,但这似乎过于复杂,我认为必须有更简单的方法.但是我在网上找不到任何东西。

最佳答案

android:background = "?android:colorPrimary"

关于android - 如何从 layout.xml 中获取当前应用主题的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com