我的应用程序的工作中,我有五种颜色:红,绿,蓝,黄,紫色
I am working on application in which i have five colors:Red,Green,Blue,Yellow,purple
我想从这些颜色实现混色:例如,像有五个按钮,每个颜色
I want to implement color mixing from those colors:such that like there are five button for each color.
用户触摸任何颜色按钮这个颜色搭配与previously绘制的颜色。
User touch whichever color button this color mix with previously drawn color.
我没有任何线索如何添加两种颜色codeS,并得到第三种颜色。
I have not any clue how to add two color codes and get third color.
编辑:
我也必须设置该颜色的ImageView位图
I have to also set this color to imageview's bitmap
如何设置呢?
这是另一种答案:
您可以混合在hexs位:
You can mix the bits in the hexs:
public static int mixTwoColors( int color1, int color2, float amount )
{
final byte ALPHA_CHANNEL = 24;
final byte RED_CHANNEL = 16;
final byte GREEN_CHANNEL = 8;
final byte BLUE_CHANNEL = 0;
final float inverseAmount = 1.0f - amount;
int a = ((int)(((float)(color1 >> ALPHA_CHANNEL & 0xff )*amount) +
((float)(color2 >> ALPHA_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int r = ((int)(((float)(color1 >> RED_CHANNEL & 0xff )*amount) +
((float)(color2 >> RED_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int g = ((int)(((float)(color1 >> GREEN_CHANNEL & 0xff )*amount) +
((float)(color2 >> GREEN_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int b = ((int)(((float)(color1 & 0xff )*amount) +
((float)(color2 & 0xff )*inverseAmount))) & 0xff;
return a << ALPHA_CHANNEL | r << RED_CHANNEL | g << GREEN_CHANNEL | b << BLUE_CHANNEL;
}