如何在 Android 中实际使用 Material Design 工具生成的调色板?

Posted

技术标签:

【中文标题】如何在 Android 中实际使用 Material Design 工具生成的调色板?【英文标题】:How to actually use a color palette generated by Material Design tool in Android? 【发布时间】:2019-02-07 20:50:24 【问题描述】:

我最近使用https://material.io/tools/color/ 的材质调色板生成器来生成调色板。

如您所见,此工具是 Material.io 上的官方工具。它生成了几种颜色 - 一种主要颜色和次要颜色,包括每种颜色的两种变体。这导致我在 colors.xml 文件中创建了类似的内容。

<!-- Color palette -->
<!-- ... -->

<!-- Colors by usage -->
<color name="colorPrimary">@color/black</color>
<color name="colorPrimaryDark">@color/blackDark</color>
<color name="colorPrimaryLight">@color/gray</color>
<color name="colorSecondary">@color/red</color>
<color name="colorSecondaryDark">@color/maroon</color>
<color name="colorSecondaryLight">@color/redLight</color>
<color name="colorTextOnPrimary">@color/white</color>
<color name="colorTextOnSecondary">@color/white</color>

我如何在我的主题中应用这些颜色? android 支持材料 (AppCompat) 主题只需要/允许三种颜色 - 主要、次要和口音。我应该使用另一个主题来应用这些属性吗?还是我只是在这里做错了什么?

我想避免在这里创建一个全新的主题,并且必须为我可能想要使用的每个组件手动设置颜色。

【问题讨论】:

【参考方案1】:

由于我看到您使用的是浅色和深色,我想生成器希望您使用 DayNight 主题。由于您已经在使用 AppCompat,我猜您正在处理支持库,因此您可以通过以下方式轻松使用这些颜色:

     <style name=“AppTheme" parent="Theme.AppCompat.DayNight">
        <item name="colorPrimary">...</item>
        <item name="colorPrimaryDark">...</item>
        <item name="colorAccent">...</item>
        ...
     </style>

这只是找到要设置的正确属性的问题。 快速的 Google 搜索将为您带来许多有用的资源,例如查看另一个 post,它也有一个官方 android 开发者博客的链接。

【讨论】:

以上是关于如何在 Android 中实际使用 Material Design 工具生成的调色板?的主要内容,如果未能解决你的问题,请参考以下文章

可在 MaterialButton android 上绘制的选择器

如何使用 GCM 在 Android 中解析或实际获取推送消息

如何在 Android 中实际使用 Material Design 工具生成的调色板?

Android自定义Transition动画

Android自定义Transition动画

如何在颤动中制作自定义按钮形状