【问题标题】:Java Set Transparency on Graphics object not Color objectJava 在 Graphics 对象而不是 Color 对象上设置透明度
【发布时间】:2015-06-26 20:11:41
【问题描述】:

有没有办法在 Java 中设置 Graphics 或 Graphics2D 对象而不是 Color 对象的透明度?

我想要的是这样的:

graphics.setAlpha(0.5);
graphics.setColor(Color.BLACK);
graphics.fillRect(0, 0, 100, 100);
graphics.setAlpha(1);

有什么见解吗?这是我正在做的简化版本,请不要回复解决方法,我只是想知道这是否可能。

【问题讨论】:

  • 您希望具有图像或标准组件的按钮具有透明度?
  • 我们有点需要知道组件。 graphics.drawRect...) 等标准形式可以设置为:Color c = new Color(r,g,b,0.5f);。另外,0.5 是一个双精度数,添加 f 以确保它是一个浮点数。
  • @MauricioGracia 对不起,我不清楚,这与 java 组件无关,我只是问 java.awt.Graphics 是否有任何方法可以为所有绘制的图形添加透明度
  • 还有你为什么要这样做?
  • @DJClayworth 因为我可以这样做

标签: java graphics transparency alpha


【解决方案1】:

所以在一些不相关的答案和更多的挖掘之后,我找到了解决方案。 AlphaComposite 类。

这样使用:

Composite originalComposite = graphics.getComposite();
AlphaComposite alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);
graphics.setComposite(alphaComposite);
graphics.setColor(Color.BLACK);
graphics.fillRect(0, 0, 100, 100);
graphics.setComposite(originalComposite);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2017-01-18
    • 2018-12-17
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多