如何使用Material Design App为自定义颜色创建自定义调色板?

时间:2015-02-13 16:19:06

标签: android colors material-design

如何生成自定义材质设计调色板,如下所示?

pallete color

是否有工具或其他东西?

8 个答案:

答案 0 :(得分:42)

似乎有人问平面设计:link here

accepted answer将引导您the author site这就是我想要的(为您生成调色板的工具,GG给他!)。

此外,answer with the highest vote很好地解释了调色板是如何制作的,恕我直言。

他们都满足了我的好奇心。

更新22/06/2016

this link现在有一个新选项。

更新03/08/2016

我认为this answer和相对app也值得一提。

更新07/04/17

两年后,Big G发布了这个工具:https://material.io/

答案 1 :(得分:34)

我仔细分析了材料设计调色板并得出了一些结论。

Google推荐的调色板中没有程序逻辑,它绝对是手工制作的。设计师手动挑选样本,但它们有一些模式。我将简要介绍一下这种魔力。

我们有自定义主基色(索引500)。要生成自定义调色板,请将基色与白色(#FFFFFF)混合基色速率:12%,30%,50%,70%,85%(索引50-400)。接下来将基色与一些“深色”混合,基色的比率接近:87%,70%,54%,25%。在材质调色板中,这种“深色”由设计师手动选择,但只要结果具有可接受的对比度差异,我就会通过将基色乘以自身来计算这种颜色。

对于重音基色(索引A200),您应该使用三重色调颜色和基色(索引500)。其他强调色具有高饱和度(0.75

我在免费的Android应用程序Material Palette Generator中实现了这个逻辑,它可以在真实的应用程序UI上创建和演示自定义的Material Design调色板。

Screen shots

答案 2 :(得分:12)

您可以使用a website来生成材质设计调色板。

首先使用它选择两种颜色:

Material Palette

然后查看你建议的调色板:

Your Palette

答案 3 :(得分:4)

我发现在这里你可以生成一个具有所有强调色的彩色托盘(在原始答案中遗漏)

Color Pallete

答案 4 :(得分:1)

如果您使用的是android studio,那么您可以找到最接近您指定颜色的材质颜色。

enter image description here

答案 5 :(得分:0)

如果您需要代码示例,可以使用以下代码:

public int[] GetMaterialColors(String color){
    int[] result = new int[14];

    result[0] = shadeColor(color, 0.9   ); //----> 50
    result[1] = shadeColor(color, 0.7   ); //----> 100
    result[2] = shadeColor(color, 0.5   ); //----> 200
    result[3] = shadeColor(color, 0.333 ); //----> 300
    result[4] = shadeColor(color, 0.166 ); //----> 400
    result[5] = shadeColor(color, 0     ); //----> 500
    result[6] = shadeColor(color, -0.125); //----> 600
    result[7] = shadeColor(color, -0.25 ); //----> 700
    result[8] = shadeColor(color, -0.375); //----> 800
    result[9] = shadeColor(color, -0.5  ); //----> 900

    result[10] = shadeColor(color, 0.7  ); //----> A100
    result[11] = shadeColor(color, 0.5  ); //----> A200
    result[12] = shadeColor(color, 0.166); //----> A400
    result[13] = shadeColor(color, -0.25); //----> A700

    return result;
}

private static int shadeColor(String color, double percent) {
    long f = Long.parseLong(color.substring(1), 16);
    double t = percent < 0 ? 0 : 255;
    double p = percent < 0 ? percent * -1 : percent;
    long R = f >> 16;
    long G = f >> 8 & 0x00FF;
    long B = f & 0x0000FF;
    int red = (int) (Math.round((t - R) * p) + R);
    int green = (int) (Math.round((t - G) * p) + G);
    int blue = (int) (Math.round((t - B) * p) + B);
    return Color.rgb(red, green, blue);
}

答案 6 :(得分:-1)

您应该查看Google提供的Palette API。它包含在support library中。 从我对你的问题的理解,这个库完全符合你的要求。

答案 7 :(得分:-1)

实际上有一个正确的 Google制造的工具可以在此处进行操作:https://material.io/inline-tools/color/

它用作埋在其文档中的iFrame,位于此处:https://material.io/design/color/the-color-system.html#tools-for-picking-colors

这里或关于平面设计的其他答案似乎都没有提到。