如何将颜色从白色淡化为黑色?

时间:2013-04-20 20:36:28

标签: java colors

我的计时器颜色从白色变为黑色,但我遇到了一些问题。

我有一组用于表示RGB值的整数。

我有一个每100ms运行一次的计时器,并减少数组中的RGB值。

我遇到的问题是我最终会得到中间的其他颜色,绿色黄色,红色等。

我想要做的是从白色渐变到黑色,所以当计时器运行时,我需要颜色变成不同的灰色。

1 个答案:

答案 0 :(得分: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);
    }
}