你如何"混合"材料设计指南中提到的颜色?

时间:2016-06-07 17:04:12

标签: java android android-studio colors material-design

材料设计指南提到混合和添加色调。以下是我遇到过的一些例子:

来自icon指南:

  

有色边缘
  材质元素的上边缘。 色调是颜色与白色的混合,可以减轻原始颜色。

     

阴影边缘
  材料元素的底部边缘。 阴影是颜色与深色调的混合,使原始颜色变暗。

来自button指南:

  

提升光/光主题
  最小宽度:88dp
  身高:36dp
  转角半径:2dp
  禁用文字:26%#000000
  禁用按钮:12%#000000

     

聚焦:12%#000000 遮蔽颜色

问题:
如何将颜色与另一种颜色混合?
你如何在一种颜色上涂上阴影?
我可以在AndroidStudio中以编程方式执行此操作吗?

1 个答案:

答案 0 :(得分:0)

如果你要求算法,那么为两种颜色获得4个整数,alpha,红色,绿色,蓝色的数组,分别添加它们,然后找到新数组的最大值,然后执行max_value / 255 ,将其存储在一个变量中,然后除以该数组中的每个数字。希望我没有搞砸我的段落。 使用BufferedImage获取像素的颜色,然后将其与您想要的颜色混合。

示例代码:

LIST=$(git log --oneline --first-parent --reverse ${RANGE});
I=0;
IFS=$'\n';
for ITEM in ${LIST}; do
    NNNN=$(printf "%04d\n" $I);
    COMMIT=$(echo "${ITEM}" | sed 's|^\([^ ]*\) \(.*\)|\1|');
    TITLE=$(echo "${ITEM}" | sed 's|^\([^ ]*\) \(.*\)|\2|' | sed 's|[ -/~]|-|g' | sed 's|--*|-|g' | sed 's|^\(.\{52\}\).*|\1|');
    FILENAME="${NNNN}-${TITLE}.patch";
    echo "${FILENAME}";
    git log -p --pretty=email --stat -m --first-parent ${COMMIT}~1..${COMMIT} > ${FILENAME};
    I=$(($I+1));
done

然后您可以编写新的Color(mixColor(color1,color2))`来获得所需的答案。