Android生成小色差RGB

时间:2014-10-22 19:08:28

标签: android canvas paint argb

我想生成/随机化一种颜色然后我想要第二个接近生成的颜色。 这就是我生成颜色ftm的方式:

Paint colors = new Paint();

int red = ran.nextInt(256-100)+100;
int green = ran.nextInt(256-100)+100;
int blue = ran.nextInt(256-100)+100;

colors.setARGB(255, red, green, blue);

以后我生成的第二种颜色如下:

switch (ran.nextInt(3)) {
        case 0:
            red = red - (40 - level);
            break;
        case 1:
            green = green - (40 - level);
            break;
        default:
            blue = blue - (40-level);
            break;
        }

问题在于它在某些情况下有效,有时它可以给我一个偏离英里的第二种颜色。 还有另一种更好更简单的方法来生成这些颜色吗?

BR

2 个答案:

答案 0 :(得分:1)

您需要创建0到3之间的实数随机数:

 Random ran = new Random();
 int max = 3;
 int min = 0;
 int randomNum = ran.nextInt((max - min) + 1) + min;

switch (randomNum ) {
        case 0:
            red = red - (40 - level);
            break;
        case 1:
            green = green - (40 - level);
            break;
        default:
            blue = blue - (40-level);
            break;
        }

答案 1 :(得分:0)

您可以使用java.awt.Color.brighter()和Color.darker()。