有没有办法编辑XML值?

时间:2014-08-07 13:31:28

标签: android xml colors

好的伙计们,我想知道Android中是否有可能。基本上,我希望我的应用程序能够有不同的颜色主题,例如红色,蓝色和绿色。在设置Action中,用户可以从单选按钮形式中选择这三个。现在,改变应用程序颜色的一种方法是加载每个活动的所有按钮,背景等,并改变它们的所有颜色,但这样效率很低。

我想要做的是制作一个带有两种颜色的XML值文件,一个用于背景颜色,一个用于按钮等颜色,然后分配所有元素的颜色以从该XML文件中获取颜色。现在有没有办法在应用程序运行时更改XML文件的值,以便可以动态更改颜色?

如果没有,是否有更简单的方法来更改我的应用程序的颜色?

2 个答案:

答案 0 :(得分:0)

您肯定不会将其写入XML文件。

但您可以在SharedPreferences中保存用户的选择。当用户打开应用程序时,您可以将此颜色值分配给您选择的特定元素。

完成。

答案 1 :(得分:0)

这样做:

<强>主题

为每种颜色创建单独的主题。将颜色应用于需要特定颜色的所有视图。

Here您将找到有关定义样式和主题的详细信息。

重新启动活动

在按钮中单击侦听器实现重新启动当前活动。

直到API10:

Intent intent = getIntent();
intent.putExtra("style", R.style.another_style);
finish();
startActivity(intent);

自API11以来:

Intent intent = getIntent();
intent.putExtra("style", R.style.another_style);
Activity.this.recreate();

我不确定在API11示例中传递新样式是否有效。如果没有,您可以尝试使用onPause()方法或onSaveInstanceState()存储新样式,然后在onCreate()中阅读。

使用样式

onCreate()方法内部始终查找“样式”属性并在设置活动视图之前应用。 e.g。

public void onCreate(Bundle bundle) {
    super(bundle);
    int style = getIntent.getIntExtra("style", -1);
    if (style != -1) {
        setTheme(style);
    }
    setContentView(R.layout.main);
}