2014-10-22 3 views
0

색상을 생성/랜덤 화하고 싶습니다. 생성 된 색상과 가까운 두 번째 색상을 원합니다. 나는 다음과 같이 생성안드로이드가 작은 색상의 차이를 생성합니다. RGB

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

나중에 2 색상 :

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

문제는이 경우에 작동하고 때로는 나를을 줄 수 이 나는 ​​색상 FTM을 생성하는 방법이다 두번째 색깔은 마일 떨어져있다. 이러한 색상을 생성하는 또 다른 방법이 있습니까?

BR

+2

"유사한"색상을 생성하는 조작에 더 적합한 hsv와 같은 다른 색상 공간이 있습니다. –

+0

@MarcB +1 ... 그리고 tinyColor.js는 rgb와 hsl 사이를 쉽게 변환합니다. http://bgrins.github.io/TinyColor/docs/tinycolor.html – markE

답변

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

당신은 java.awt.Color.brighter()와 Color.darker() 사용할 수 있습니다.