在网络上的每个地方,我都看到colorPrimary
的使用,直到偶然发现Google自己使用的Color Tool:
-<resources>
<color name="primaryColor">#303f9f</color>
<color name="primaryLightColor">#666ad1</color>
<color name="primaryDarkColor">#001970</color>
<color name="secondaryColor">#fdd835</color>
<color name="secondaryLightColor">#ffff6b</color>
<color name="secondaryDarkColor">#c6a700</color>
<color name="primaryTextColor">#ffffff</color>
<color name="secondaryTextColor">#000000</color>
</resources>
一旦您导出选择。
那么正确的约定是什么?另外,会影响小部件的“材料成分”颜色吗?
1。如果在res/values/colors.xml
中定义颜色,则可以单独使用任何名称,在Java / Kotlin类中创建变量时也可以使用相同的名称。
Android开发人员的示例
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
</resources>
2。如果您创建自Android样式/主题的自定义样式/主题,则必须使用Android定义的名称。
// colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primaryColor">#008577</color>
<color name="primary_dark_color">#00574B</color>
<color name="color_accent">#D81B60</color>
</resources>
// styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/primaryColor</item>
<item name="colorPrimaryDark">@color/primary_dark_color</item>
<item name="colorAccent">@color/color_accent</item>
</style>
您可以在styles.xml中看到,在父主题中定义了3个属性名称colorPrimary
,colorPrimaryDark
,colorAccent
,因此您必须使用相同的名称,因为您要覆盖它。
在colors.xml中,您可以使用您认为在应用程序中有意义的任何名称。
返回您的问题:
那么正确的约定是什么?
在这种情况下没有标准约定,但是在Android Developer中,您只需为颜色指定一个名称,而无需添加color / Color作为前缀或后缀。因为我们通常将所有应用程序的颜色都放在res/values/colors.xml
中,并且每个项目都在颜色标签内。
会影响小部件的材料成分颜色吗?
没有。