Jetpack Compose 中的 Material3 颜色协调

问题描述 投票:0回答:2

在使用基于视图的系统时,我们可以使用以下代码来协调颜色。

MaterialColors.harmonizeWithPrimary(context, colorToHarmonize)

在完全迁移到 Jetpack Compose 且所有颜色值都存储在

Color.kt
文件中的项目中,如何在运行时对颜色应用协调?

android android-jetpack-compose android-jetpack-compose-material3 material-you material3
2个回答
2
投票

可以使用方法

MaterialColors.harmonize(colorToHarmonize, colorToHarmonizeWith)

并将您的自定义颜色与动态配色方案中的primaryColor协调一致

MaterialColors.harmonize(customColor.toArgb(), MaterialTheme.colorScheme.primary.toArgb())

如果您想进行额外的步骤,您可以通过 CompositionLocalProvider 提供协调值,以将其提供到合成中,以匹配 MaterialTheme.colorScheme 提供动态颜色的方式。

我在这个项目中进一步探讨了这个问题:https://github.com/acolombo25/harmonized-colors-compose


0
投票

有一个Material Kolor库。它能够协调组合颜色。

只需将其添加到您的 build.gradle 文件中:

implementation("com.materialkolor:material-kolor:1.7.0")

然后,您可以使用此代码来协调您的颜色(在本例中为绿色)与主题的原色:

MaterialTheme.colorScheme.harmonizeWithPrimary(Color.Green)

或者您可以协调任意颜色:

Color.Red.harmonize(Color.Blue)

我鼓励您查看图书馆的文档,您可以做的事情比我刚刚在这里展示的更多。

© www.soinside.com 2019 - 2024. All rights reserved.