Java 颜色取决于百分比

Java 颜色取决于百分比,java,colors,Java,Colors,嘿,伙计们,我正在做一个健康酒吧。 它使用100%到0%的百分比表示健康状况。 我希望它能根据剩余的生命值改变颜色。 100%必须为绿色,0%必须为红色。 是否有某种公式或函数可以自动使用/生成颜色的格式如下:0xFFRRGGBB如果您只需要从绿色到红色的渐变,则如下所示: // import java.awt.Color; static Color HealthToColor(double percentage) { if (percentage > 1) {

嘿,伙计们,我正在做一个健康酒吧。
它使用100%到0%的百分比表示健康状况。
我希望它能根据剩余的生命值改变颜色。
100%必须为绿色,0%必须为红色。

是否有某种公式或函数可以自动使用/生成
颜色的格式如下:
0xFFRRGGBB

如果您只需要从绿色到红色的渐变,则如下所示:

// import java.awt.Color;

static Color HealthToColor(double percentage) {
    if (percentage > 1) {
        percentage = 1;
    }
    else if (percentage < 0) {
        percentage = 0;
    }
    int red = (int)(255.0 * (1 - percentage));
    int green = (int)(255.0 * (percentage));
    int blue = 0;
    return new Color(red, green, blue);
}
//导入java.awt.Color;
静态颜色HealthToColor(双百分比){
如果(百分比>1){
百分比=1;
}
否则,如果(百分比<0){
百分比=0;
}
红色整数=(整数)(255.0*(1-百分比));
绿色整数=(整数)(255.0*(百分比));
int蓝色=0;
返回新颜色(红色、绿色、蓝色);
}
如果你需要一个百分比,很明显,将健康除以100

  • HealthToColor(1)/->java.awt.Color[r=0,g=255,b=0]
  • HealthToColor(0)/->java.awt.Color[r=255,g=0,b=0]
  • HealthToColor(0.5)/->java.awt.Color[r=127,g=127,b=0](这是橄榄色,不是橙色)
  • HealthToColor(0.1)/->java.awt.Color[r=229,g=25,b=0](这是橙红色)

除非您有图形对象来绘制颜色,否则颜色是没有意义的。你想达到什么目的?因为你所描述的颜色是红、绿、蓝三种颜色,用一个百分比来描述颜色没有太大意义。您需要更多的数据点来进行适当的转换。例如,白色(所有FFs)的百分比值是多少?黑色(全部为0)怎么样?原蓝怎么样?为什么你的橙色规格是50%,而这(例如)是100%红色、50%绿色和0%蓝色?为什么是0%和100%,因为我做的东西,0%是死的那么红,100%是活的那么绿。是的,我可以画,我的绘图函数采用0xAARRGGBB,所以阿尔法红-绿-蓝。。我不需要透明,所以0xFFRRGGBB非常感谢@kjhf,我需要对代码做一点小改动。我需要将返回类型更改为int,将返回行更改为
returnnewcolor(红色、绿色、蓝色)