如何更改主要颜色,颜色primarydark等

时间:2016-09-03 13:48:58

标签: android android-layout colors themes

我正在尝试制作应用程序,可以选择更改应用的颜色主要颜色主要深色。因此,用户可以根据选择更改颜色。我想在设置中提供此选项。因此,用户可以选择黑色深蓝色 greyblue 等。我知道如何在xml中设置应用程序的主题,但我想更改孔应用程序的颜色。 我想更改应用程序中所有活动和对话框的主题。因为有人不能将应用程序的主题更改为here。这就是为什么我想在可能的情况下制作不同的颜色文件

  
      
  1. 我是否必须为不同的语言制作不同的颜色文件?

  2.   
  3. 如果是,我如何才能使用不同的颜色文件?

  4.   

1 个答案:

答案 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)
}