【发布时间】:2015-06-20 20:32:46
【问题描述】:
我需要在我的麦克风可视化器中插入四种颜色。
如果用户保持沉默,则为白色。
如果用户轻声说话,则变为红色。
3 如果用户正常说,则颜色为黄色。
如果用户说话,4 种颜色为绿色 大声点。
我创建 Paint void 以更改颜色,但我不知道如何插入这四种颜色,我只知道如何使用两种颜色进行此操作。我需要做什么?
// used to take colors mix according to proportion
private int interpolateColor(final int a, final int b,
final float proportion) {
final float[] hsva = new float[3];
final float[] hsvb = new float[3];
Color.colorToHSV(a, hsva);
Color.colorToHSV(b, hsvb);
for (int i = 0; i < 3; i++) {
hsvb[i] = interpolate(hsva[i], hsvb[i], proportion);
}
return Color.HSVToColor(hsvb);
}
private float interpolate(final float a, final float b,
final float proportion) {
return (a + ((b - a) * proportion));
}
【问题讨论】:
-
您可以使用不止一种插值函数,但您可能想要的是:找出您介于哪两种颜色之间,然后只对这两种颜色进行插值。