gpt4 book ai didi

android 主题 - 在自定义主题中定义颜色

转载 作者:IT王子 更新时间:2023-10-28 23:33:47 30 4
gpt4 key购买 nike

我确信有一个简单的答案,但我只是找不到它,所以我把它扔进了 stackoverflow ... ;-)

我只是举个例子。我有一个 android 应用程序,用户可以在其中选择首选项中的主题 - 深色或浅色主题。根据选择的主题,我必须在我的应用程序中调整 20 种颜色。所以我希望我可以在主题中定义颜色,然后在我的 TextViews 等中使用这种定义颜色的名称。但到目前为止,我无法弄清楚如何做到这一点,并且在这里和那里找不到任何解决方案.我真的不想为这 20 种颜色中的每一种定义额外的深色和浅色样式,但到目前为止,这似乎是我能找到的唯一解决方案。

非常感谢任何提示

马丁:

更新:

在伪语法中就是我正在寻找的。有可能吗?

<style name="AppTheme.MyDark" parent="android:Theme">
-?-> titleColor = "#ffffff"
-?-> introColor = "#ffaaaa"
</style>

<style name="AppTheme.MyLight" parent="android:Theme.Light">
-?-> titleColor = "#000000"
-?-> introColor = "#004444"
</style>


<TextView
android:id="@+id/quoteTitle"
android:textColor=@titleColor
...
</TextView>

<TextView
android:id="@+id/quoteIntro"
android:textColor=@introColor
...
</TextView>

最佳答案

我找到了一个似乎可行的解决方案。首先,您需要在 attr.xml 中定义自定义颜色字段

<?xml version="1.0" encoding="utf-8"?>
<resources>

<attr name="titleColor" format="reference|color" />
<attr name="introColor" format="reference|color" />

</resources>

接下来你定义你的主题

<style name="AppTheme.MyDark" parent="android:Theme">
<item name="titleColor">#FFFFFF</item>
<item name="introColor">#FFFFFF</item>
</style>


<style name="AppTheme.MyLight" parent="android:Theme">
<item name="titleColor">#000000</item>
<item name="introColor">#004444</item>
</style>

最后在你的布局中

<TextView
android:id="@+id/quoteTitle"
android:textColor="?titleColor"
...
</TextView>

<TextView
android:id="@+id/quoteIntro"
android:textColor="?introColor"
...
</TextView>

我主要找到了解决方案here

android 官方文档中似乎没有关于使用属性的解释。我找到的最佳资源是here

关于android 主题 - 在自定义主题中定义颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12703757/

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