>目标:在Android应用程序中,我们从服务器接收颜色。登录后,用户从 JSON 获得具体颜色集,例如
{
"color-primary": "#FFFFFF",
"color-primary-dark":"#FF0000"
}
它可以是任何颜色。在下一个屏幕上,接收的颜色应应用于视图(如主题(。颜色会影响背景、文本颜色等。
已经做了什么:拥有一组有限的主题并不能解决问题,因为我们可以接收随机的颜色组合。
简单的解决方案是使用类似BaseActivity
或BaseView
的东西,它将颜色应用于具有特殊自定义属性的每个视图。
问题:如何以更方便的方式执行此操作?试图找到一个星期的解决方案 - 没有结果:(请帮助我
如果您正在寻找一种更改主题颜色的方法,我必须告诉您不能。 这是因为主题是不可变的。 但正如您所说,您可以通过编程方式应用活动中的颜色,如果您想更改整个应用程序的颜色,正如您所说,您可以使用 BaseActivity 模式来执行此操作。我不知道你想改变什么,但它可能是像actionBar?.setBackgroundDrawable(ColorDrawable(0xFFFFFF))
另一种方法是将颜色存储在数据库或单例类或全局变量中(取决于您需要什么(,每次加载活动时,请根据需要更改它。 您可以为此使用接口,并使活动实现您的接口