我想生成/随机化一种颜色然后我想要第二个接近生成的颜色。 这就是我生成颜色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
答案 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()。