【问题标题】:how to change android app's look at runtime如何在运行时更改 android 应用程序的外观
【发布时间】:2015-07-03 12:37:23
【问题描述】:

我在 colors.xml 中定义了颜色,如下所示

<resources>
    <color name="primary">#5D4037</color>
    <color name="primary_dark">#4E342E</color>
    <color name="accent">#FF3D00</color>
</resources>

我还在styles.xml中定义了主题,如下所示

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
</style>

此外,在代码中的许多地方,我都使用这些颜色来设置文本等。 现在我想为用户提供更改颜色的选项。我读到我无法更改colors.xml 中指定的颜色。另外,即使我更改了theme,引用的颜色也无法更改。因此,指定更多主题(使用硬编码的颜色)可能是一种选择,但在这种情况下,动态获得颜色的元素会发生什么?此外,用户不能选择任何颜色,只能使用我在主题中指定的颜色。

我是否遗漏了一些明显的东西?如何做到这一点?

【问题讨论】:

  • 我认为您不能以编程方式更改样式,您需要更改为每个元素,
  • 制作一个微调器,声明这些字段(primary、primary_dark、accent)并在点击时调用颜色。

标签: android colors android-xml android-theme


【解决方案1】:

您不能在运行时更改资源文件中的值。

如果您想让您的用户自定义应用中的颜色,您需要自己存储和管理这些颜色,可能使用资源文件来提供默认值或存储用户可以从中选择的选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多