Android 原色还是原色?

Android 原色还是原色?,android,colors,material-design,user-experience,material-components,Android,Colors,Material Design,User Experience,Material Components,在网络上的任何地方,我都能看到colorPrimary的使用,直到我偶然发现谷歌自己的应用程序: -<resources> <color name="primaryColor">#303f9f</color> <color name="primaryLightColor">#666ad1</color> <color name="primaryDarkColor"&

在网络上的任何地方,我都能看到colorPrimary的使用,直到我偶然发现谷歌自己的应用程序:

-<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类中创建变量时也是如此

原色 原色 原色 彩色原色 安卓开发者的一个例子

<?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开发者那里,您只需为颜色指定一个名称,无需添加颜色/颜色作为前缀或后缀。因为我们通常将所有应用程序的颜色都放在res/values/colors.xml中,并且每个项目都在一个颜色标签中

它会影响小部件的材质组件颜色吗


不一样。

就我个人而言,我更喜欢这是标准约定colorPrimary、colorPrimaryDark、colorAccent,我看不出它会影响/冲突材质组件小部件颜色的任何原因。你的第二点是我不理解的。我从MaterialComponents.DayNight扩展而来,因此我必须使用相同的项目名称。但是Google自己的工具使用不同的名称。@PIXP从主题扩展时,通常需要覆盖该主题中的某些属性,如文本颜色、按钮大小、背景等,然后必须使用该主题中定义的相同项目名称。如果您使用其他名称,则不会影响您的应用程序。谷歌并不总是对的。你可以看到这个链接。