2013-04-20 3 views
0

흰색에서 검은 색으로 색이 바래지는 타이머가 있는데 문제가 있습니다.흰색을 검은 색으로 색을 바래는 방법은 무엇입니까?

RGB 값을 나타내는 int 배열이 있습니다.

저는 100ms마다 실행되며 배열의 RGB 값을 감소시키는 타이머가 있습니다.

제가하는 데 문제는 내가 중간에 다른 색상으로 끝날 것입니다 등, 빨간색, 노란색, 녹색

내가 뭘하려고 오전 검은 색에 흰색에서 페이드, 그래서 타이머가 실행될 때 그레이와 다른 색조가되도록 색이 있어야합니다.

답변

1

전역 변수를 선언하고 fading이라고합니다. 당신의 타이머의 몸에서

Color fading = Color.white; 

: 당신의 타이머가 흰색에서 검은 색으로 RGB 값을 감소이 코드를 실행

if(fading.getRed()>0){ 
    fading = new Color(fading.getRed()-1,fading.getGreen()-1,fading.getBlue()-1); 
    //do whatever you have to do with your fading color 
} 

매번.

결과 :

LOOP NO | COLOR 
     1: R=255, G=255, B=255 
     2: R=254, G=254, B=254 
     3: R=253, G=253, B=253 
     4: R=252, G=252, B=252 
     5: R=251, G=251, B=251 
     6: R=250, G=250, B=250 
     . 
     . 
     . 
    255: R=0, G=0, B=0 

편집

예 :

import java.awt.Color; 

public Class YourClass{ 

    Color fading = Color.white; 

    public YourClass(){ 
     TimerTask task = new TimerTask() { 
      @Override 
      public void run() { 
       if (fading.getRed() > 0) { 
        fading = new Color(fading.getRed() - 1, fading.getGreen() - 1, fading.getBlue() - 1); 
        //do other stuff here 
       } 
      } 
     }; 

     Timer timer = new Timer(); 
     timer.scheduleAtFixedRate(task, 0, 100); 
    } 
} 
+0

감사합니다! 나는 각각의 RGB 값을 어떻게 바꾸는 지 계속 궁금해했다. 이것은 효과가 있었다. – Tony

+0

여러분을 환영합니다! – BackSlash

관련 문제