有没有办法在我的应用程序中引用材料设计规范

时间:2016-01-30 02:24:18

标签: android xml android-layout material-design

我使用Material Design specs for colour在我的应用中会有很多不同的颜色。

这意味着我需要将网站颜色的十六进制代码复制并粘贴到我的XML文件(colours.xml)中,但是为很多颜色执行此操作将会非常繁琐。

同样,我希望能够在我的应用中使用keyline and spacing values from the spec,但不必手动将这些添加到我的dimens.xml

我是否可以通过某种方式从材料设计规范中引用颜色/尺寸/等,而无需将我想要的值手动添加到我的XML文件中?

1 个答案:

答案 0 :(得分:0)

您可以使用名为 MaterialDesignUtils 的库,它可以帮助您根据需要引用值(请查看on GitHub)。

要使用它,您需要将以下内容添加到模块的build.gradle脚本中:

dependencies {
    ...
    compile 'com.farbod.mdutils:mdutils:+'
}

现在,您不必在colours.xml(或其他地方 - 例如XML布局)中查找十六进制值,而是可以按以下格式引用材质设计颜色:

@color/mdu_COLOUR_VARIANT

其中COLOUR是规范中颜色组的名称(例如红色,粉红色,紫色,深紫色等),VARIANT是该颜色的类型(例如50, 100,200,...,a700)。

因此,您可以在colours.xml中使用此值,例如:

<resources>
    <color name="theme_primary">@color/mdu_red_500</color>
</resources>

您可以采用相同的方式引用维度(例如@dimen/)。

但是,如果您的colours.xml文件中已有某些颜色要转换为对库的引用(例如转换...

<resources>
    <color name="theme_primary">#F44336</color>
</resources>

...更像前面的例子),我会看一下 mdu-file-converter 程序(also on GitHub)。

我开发了这两种工具,所以如果遇到问题,请通过GitHub上的问题告诉我。希望这能解决你的问题。