Java颜色不透明度

jpo*_*jpo 3 java transparency colors opacity

我有一种方法来根据某些值确定颜色.方法是这样的:

public Color color(double val) {
    double H = val * 0.3; 
    double S = 0.9; 
    double B = 0.9; 
    return Color.getHSBColor((float)H, (float)S, (float)B);
}
Run Code Online (Sandbox Code Playgroud)

我也想让颜色变得透明.我怎样才能做到这一点?谢谢

Ray*_*oal 7

最简单的方法是使用以下构造函数直接指定R,G,B和A:

public Color(float r, float g, float b, float a).

我知道你有HSB,但你可以很容易地转换为RGB.


小智 5

我知道这已经很旧了,但是当我想要使用 Java 内置图形对象实现不透明度时,我所做的就是new Color(RRR, GGG, BBB, AAA).

在上下文中使用:

g.setColor(new Color(255, 255, 255, 80));
Run Code Online (Sandbox Code Playgroud)

最后一个值是 Alpha 通道/不透明度,数字越大意味着越不透明。

  • jpo 的答案中说明了该方法的一部分,但迄今为止,您的方法是唯一提供有关 alpha 的较高/较低值意味着什么的重要信息的方法。因此我投了赞成票,但后来意识到这是不正确的:alpha 值越大意味着颜色越不透明。我希望你能解决这个问题。 (2认同)