混色的androidandroid

2023-09-12 23:48:19 作者:丢了樱桃的小丸子

我的应用程序的工作中,我有五种颜色:红,绿,蓝,黄,紫色

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;
}