【问题标题】:Android generate small color difference RGBAndroid生成小色差RGB
【发布时间】:2014-10-22 19:08:28
【问题描述】:

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

【问题讨论】:

标签: android canvas paint argb


【解决方案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;
        }

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 2019-10-30
      • 1970-01-01
      • 2013-08-20
      • 2020-10-04
      • 2018-01-13
      相关资源
      最近更新 更多