登录后,我会在成功时返回一个User对象,并且在对象内,我能够告诉用户的类型。我希望每个用户共享相同的布局但不同的主题颜色。有没有办法在colors.xml文件中声明多组颜色?或者是否必须通过创建一个完整的不同colors.xml文件来完成?
我有这样的事情:
对于管理员:
<resources>
<color name="primary">#E53935</color>
<color name="primary_dark">#B71C1C</color>
<color name="accent">#212121</color>
<color name="background_color">#F5F5F5</color>
<color name="text_color_primary">#FAFAFA</color>
<color name="drawer_fragment_background">#424242</color>
</resources>
普通用户:
<resources>
<color name="primary">#EEEEE</color>
<color name="primary_dark">#BBBBB</color>
<color name="accent">#200001</color>
<color name="background_color">#C5BEA3</color>
<color name="text_color_primary">#FAFAFA</color>
<color name="drawer_fragment_background">#424242</color>
</resources>
基于User对象,我希望@color/primary
指向特定的颜色集。这是由sharedPreference文件完成的吗?
答案 0 :(得分:0)
我找到了解决方案我想你必须在colors.xml中定义不同的颜色a_primary =“#000”b_primary =“#111”然后你可以在styles.xml中创建不同的样式
<style name="a_Theme" parent="AppTheme">
<item name="colorPrimary">@color/a_primary</item>
</style>
<style name="b_Theme" parent="AppTheme">
<item name="colorPrimary">@color/b_primary</item>
</style>
然后根据intent params onCreate将主题应用为setTheme(android.R.style.a_Theme);