是否可以在colors.xml文件中包含颜色定义?



我使用的应用程序中的颜色定义非常复杂。除此之外:

  • 有遗留定义
  • 有基本的颜色定义
  • 有一个单独的颜色定义层引用基本定义

我想在多极文件中组织这些颜色定义,可能包括彼此。

这怎么可能?

你可以在任何文件中定义你的颜色,只要它是在values目录下。

在你的情况下,你可以这样做:

values
|-- legacy_colors.xml
|-- basic_colors.xml
|-- high_level_colors.xml

文件不可能包含彼此,但是您可以像这样引用其他文件中的值:

File: basic_colors.xml

<color name="basic_blue">#00bbff</color>

File: high_level_colors.xml

<color name="list_item_backgroud">@color/basic_blue</color>

您可以根据需要在res/values/(或res/values-.../)中拥有尽可能多的文件。它们中的任何一个都可以定义颜色。虽然惯例使用colors.xml文件,但这不是必需的。

虽然没有"包括彼此"的概念。所有的颜色资源都在同一个命名空间(R.color.XXXX)。