问题描述
在我的应用中,我有多个用户帐户。每个用户可以定义自己的颜色集。诸如colorPrimary
,colorPrimaryDark
,colorAccent
等。因此,每当用户登录时,活动将使用用户定义的colors
来表示theme
。>
为了更好地理解,说我的user
是:
class User {
String user_name = "Iron Man";
int colorPrimary = Color.RED;
int colorAccent = Color.BLUE;
...
解决方法
我在两个应用程序中都创建了相同的想法,您有两个选择
第一个选项,在您的theme.xml文件中创建许多主题,并根据活动中的用户使用setTheme函数更改整个主题,例如,深色主题,白色主题,蓝色主题等,例如Askfm App
检查此应用代码,我已经在其上创建了此功能 https://github.com/amrdeveloper/askme
第二个选项,使用户能够使用颜色选择器更改所有内容 并使用诸如getSupportActionBar,setStatusBarColor,setNavigationBarColor和SharedPreferences之类的功能来更改主题
我已经在我的应用中实现了这个想法,您可以从链接中查看结果
https://play.google.com/store/apps/details?id=com.amrdeveloper.materialtimer
但是您不能在运行时编辑主题XML,因为它是不可变的