0

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

我有一个整数数组来表示 RGB 值。

我有一个计时器,它每 100 毫秒运行一次,并递减数组中的 RGB 值。

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

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

4

1 回答 1

0

声明一个全局变量并调用它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);
    }
}
于 2013-04-20T20:41:30.820 回答