0

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

4

2 回答 2

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;
        }
于 2014-10-22T19:14:57.777 回答
0

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

于 2014-10-22T21:26:57.483 回答