【发布时间】:2017-09-29 23:49:12
【问题描述】:
我正在编写一个 Android 应用程序,并且我正在尝试包含一个“更改颜色”选项(例如在设置屏幕中)。 我发现“colors.xml”文件(app->src->main->res->values)中有三种颜色:
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#ff4040</color>
如果可能的话,这个想法是通过按下按钮来更改这些颜色,例如(红色按钮将更改为红色主题,蓝色按钮将更改为蓝色主题,等等)。 这有可能吗?如果没有,您是否有不同的想法来改变颜色? 如果这样的问题已经存在,我很抱歉。我什么也没找到,但我也不知道要找什么。
提前谢谢你:)
编辑:
目前,我正在尝试这种方式:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_dark:
setTheme(R.style.BlackTheme);
Toast.makeText(context, "Dark", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_light:
setTheme(R.style.LightTheme);
Toast.makeText(context, "Light", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_settings_save:
Intent i = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(i);
finish();
break;
}
}
意思是,我想通过在按下保存按钮时调用 MainActivity 中的 onCreate 来更改它我试图重置“setContentView”。
我必须在哪里设置所有主题?在清单中?因为当我在 OnCreate 中设置它时,我会覆盖我在“设置”-Activity 中所做的更改,还是我错了?
【问题讨论】:
标签: android mobile-development