我的应用有一个 styles.xml
文件,其中定义了各种视觉常量。
我希望我的用户能够将整个应用切换到另一个视觉主题。我想提供一个替代的 styles2.xml
文件并在运行时切换(通过设置)。
这可能吗?如何实现?我怀疑样式名称在生成的 R 类中的出现不是好兆头。
如果不可能,我的下一个最佳选择是什么?
最佳答案
不确定是否还有人感兴趣,但我已经找到了可能的解决方案。有点骇人听闻,但得到了预期的结果。 基本上我在不同的国家代码目录中设置了我的 2 个样式文件:
res/values-mcc199/style.xml
res/values-mcc198/style.xml
然后在我的 Activity 中,我使用以下内容来更改引用的内容:
Configuration config = new Configuration();
config.mcc = 199;
getBaseContext().getResources().updateConfiguration(config,null);
到目前为止,我只做了一些基本测试,但它似乎有效。显然,如果您已经在使用国家/地区代码来决定您的布局,那么这会产生干扰。我认为如果手机收到有关国家/地区更改的事件,也可能会出现问题。
关于android - 在运行时将整个应用程序切换到备用 "styles.xml"文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308716/