1

如何在具有一半不透明度/透明度的小程序中绘制填充矩形?

4

3 回答 3

8

是的。

void foo(Graphics g) {
  g.setColor(new Color(.3f, .4f, .5f, .6f);
  g.fillRect(50, 50, 100, 100);
}
于 2009-02-01T07:13:47.350 回答
3

您使用的是什么 API?如果您使用 Java2D 中的 Graphics,当您创建 Color 对象时,您可以将透明度作为 0 到 1 之间的 alpha 添加到它们。

这是一篇关于 Java2D 的旧文章,其中包含一些示例

于 2009-01-31T22:53:14.303 回答
0

Paul Murray 的回答完全正确。但需要澄清的是,4 个颜色开关的混合和匹配是产生不同颜色的原因。以下是一些可帮助您入门的基础知识。

g.setColor(new Color(1f, 0f, 0f, 1f)); //RED
g.setColor(new Color(0f, 1f, 0f, 1f)); //GREEN
g.setColor(new Color(0f, 0f, 1f, 1f)); //BLUE
g.setColor(new Color(0f, 0f, 0f, 1f)); //BLACK
g.setColor(new Color(1f, 1f, 1f, 1f)); //WHITE

如果你使用十进制数字,你可以使颜色不透明。所以:

g.setColor(new Color(.5f, 0f, 0f, .5f)); //RED

将是 50% 的不透明和红色。然后你可以用那种不透明的颜色画出任何东西。如:

g.fillRect(50, 50, 100, 100);

正如保罗所说

于 2013-08-18T07:03:32.890 回答