0
我有一个从白色到黑色的颜色渐变的计时器,但我遇到了一些问题。如何将颜色从白色变为黑色?
我有一个int数组来表示RGB值。
我有一个计时器,每100ms运行一次并递减数组中的RGB值。
我遇到的问题是,我将结束在中间其他颜色,绿,黄,红等
我所试图做的是从白到黑褪色,所以我需要颜色变成与定时器运行时不同的灰色阴影。
我有一个从白色到黑色的颜色渐变的计时器,但我遇到了一些问题。如何将颜色从白色变为黑色?
我有一个int数组来表示RGB值。
我有一个计时器,每100ms运行一次并递减数组中的RGB值。
我遇到的问题是,我将结束在中间其他颜色,绿,黄,红等
我所试图做的是从白到黑褪色,所以我需要颜色变成与定时器运行时不同的灰色阴影。
声明一个全局变量并将其称为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);
}
}
谢谢!我一直想知道如何改变每个RGB值。这工作。 – Tony 2013-04-20 21:17:50
不客气! – BackSlash 2013-04-20 21:26:06