2013-04-20 241 views
0

我有一個從白色到黑色的顏色漸變的計時器,但我遇到了一些問題。如何將顏色從白色變爲黑色?

我有一個int數組來表示RGB值。

我有一個計時器,每100ms運行一次並遞減數組中的RGB值。

我遇到的問題是,我將結束在中間其他顏色,綠,黃,紅等

我所試圖做的是從白到黑褪色,所以我需要顏色變成與定時器運行時不同的灰色陰影。

回答

1

聲明一個全局變量並將其稱爲fading

Color fading = Color.white; 

在你的計時器的身體:

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 
} 

每當您的計時器執行此代碼將RGB值減少從白到黑。

結果:

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 2013-04-20 21:17:50

+0

不客氣! – BackSlash 2013-04-20 21:26:06

相關問題