我正在尝试制作应用程序,可以选择更改应用的颜色主要,颜色主要深色。因此,用户可以根据选择更改颜色。我想在设置中提供此选项。因此,用户可以选择黑色,深蓝色, greyblue 等。我知道如何在xml中设置应用程序的主题,但我想更改孔应用程序的颜色。 我想更改应用程序中所有活动和对话框的主题。因为有人不能将应用程序的主题更改为here。这就是为什么我想在可能的情况下制作不同的颜色文件
我是否必须为不同的语言制作不同的颜色文件?
- 醇>
如果是,我如何才能使用不同的颜色文件?
答案 0 :(得分:7)
第一步:为每个颜色选项制作一个主题:
List
第二步:覆盖活动的<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.MyAwesomeApp.Base" parent="Theme.AppCompat">
<!-- Your common styles -->
</style>
<style name="Theme.MyAwesomeApp.Blue" parent="Theme.MyAwesomeApp.Base">
<item name="colorPrimary">@color/material_indigo_500</item>
<item name="colorPrimaryDark">@color/material_indigo_700</item>
<item name="colorAccent">@color/material_light_blue_A200</item>
</style>
<style name="Theme.MyAwesomeApp.Red" parent="Theme.MyAwesomeApp.Base">
<item name="colorPrimary">@color/material_red_500</item>
<item name="colorPrimaryDark">@color/material_red_700</item>
<item name="colorAccent">@color/material_red_A200</item>
</style>
</resources>
方法,以便使用选择的主题调用onCreate()
:
setTheme()
如果您有多个活动,请创建基类并将其设置为此类
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(getThemeIdChoosenByUser())
setContentView(R.layout.myAwesomeLayout)
}