在Android App上应用数据库中的颜色

问题描述 投票:0回答:1

我有一个桌面应用程序使用的List of themes in a database

所以,假设我的Android应用程序具有Base应用程序主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@android:color/white</item>
</style>

在桌面应用程序中,可以编辑主题并添加新主题。 (因此,使用themes.xml或styles.xml对所有现有主题进行硬编码会有问题)。

  1. 我已经有了一种以Json格式从数据库中获取颜色的方法。
  2. 我以为我可以使用数据绑定。但是我找不到如何编写用于传递十六进制字符串值的代码。
  3. 我希望我可以在应用程序的startUp中应用数据库中的值(不需要完全'在运行时')。
  4. 我看到我可以使用共享的首选项。但我不知道如何将共享首选项中的十六进制字符串应用于所有应用程序活动。
  5. 我希望在启动时将“新颜色”应用到应用程序并覆盖所有剩余的活动......

其中一个主题的Json看起来像这样:

    [
        {
            "id_temas": 1,
            "tema_nome": "Padrão",
            "bd_barratitulo": "#FF00308B",
            "bd_fundo": "#FFD2E8EC",
            "bd_titulo": "#FFFFFFFF",
            "linear_1a": "#FF002E8A",
            "linear_1b": "#FF0071B7",
            "linear_1c": "#FF002E8A",
            "linear_2a": "#4C8BC0",
            "linear_2b": "#015CA3",
            "linear_2c": "#024795",
            "linear_2d": "#2C5198",
            "linear_3a": "#000098",
            "linear_3b": "#000075",
            "linear_3c": "#000075",
            "linear_3d": "#000082",
            "person": 0
        }
    ]

所以,问题是:如何检索我存储在数据库中的十六进制字符串并应用于android活动?这个想法是,当用户登录时,条形图和背景等,从数据库的主题列表中获取颜色。

非常感谢提前。

android android-layout themes android-theme
1个回答
0
投票

如果你想设置背景颜色,请尝试这样做:

currentLayout.setBackgroundColor(Color.parseColor( “#FFFFFF”));

其中#FFFFFF是你json的字符串

© www.soinside.com 2019 - 2024. All rights reserved.