要使用它,可以使用如下方法,其中color是MaterialColor(相当于www.example.com、www.example.com等)的默认颜色,swatch是在下面的贴图中定义的相应材质强度(50、300、900等)。 Colors.red , Colors.blue , etc) and swatch is the corresponding Material intensity (50, 300, 900, etc) defined in the map below.
Color getSwatch(Color color, int swatch) {
return Color(ColorMap.getColorToHue()[color.value]![swatch]!);
}
黑色和白色没有Map到阴影强度的"默认"或主值(www.example.com或Colors. white返回的值)。其他颜色的强度500Map到其主值。黑色和白色通过传入100作为getSwatch函数中的样本值来访问。Colors.black or Colors.white) mapped to a shade intensity. The other colors have an intensity of 500 mapped to their primary value. Black and white are instead accessed by passing in 100 as the swatch value in the getSwatch function. Note that this is a custom addition in order to allow full functionality of the method.
1条答案
按热度按时间s5a0g9ez1#
这是我正在使用的一个解决方案,因为在示例化预定义的MaterialColor之后,没有好的API可以从它获取着色。
我们的想法是创建一个Map,其中包含了您用作基色的
MaterialColor
的默认值(如果您没有MaterialColor
的句柄,也可以从Color.value
获取此值)。该值可以被引用以检索其阴影,这是一个强度(样本)到其给定值的Map。要使用它,可以使用如下方法,其中
color
是MaterialColor(相当于www.example.com、www.example.com等)的默认颜色,swatch
是在下面的贴图中定义的相应材质强度(50、300、900等)。 Colors.red , Colors.blue , etc) andswatch
is the corresponding Material intensity (50, 300, 900, etc) defined in the map below.有几点需要注意:
Colors.accents
上循环并添加适当的强度,以类似的方式添加它们。500
Map到其主值。黑色和白色通过传入100
作为getSwatch
函数中的样本值来访问。Colors.black or Colors.white) mapped to a shade intensity. The other colors have an intensity of500
mapped to their primary value. Black and white are instead accessed by passing in100
as the swatch value in thegetSwatch
function. Note that this is a custom addition in order to allow full functionality of the method.