【问题标题】:Eclipse RCP Draw2d Transparency (setAlpha) makes borders / outline invisibleEclipse RCP Draw2d Transparency (setAlpha) 使边框/轮廓不可见
【发布时间】:2011-12-13 04:28:45
【问题描述】:
我们为用户提供了使画布上绘制的图形透明的选项。为此,我们使用方法 setAlpha(0)。但这会使人形完全不可见。
如果用户希望有边框,我们的要求是轮廓/边框应该显示在透明图形上。
我们尝试使用方法 setOpaque(false)。但它不起作用。
我们使用的是 Ubuntu 9.1 操作系统。
任何实现这一点的建议都会非常有帮助。
问候,
潘卡伊·夏尔马
【问题讨论】:
标签:
eclipse
transparency
rcp
draw2d
【解决方案1】:
您可以像这样扩展您正在使用的Shape:
public class TranslucentRoundedRectangle extends RoundedRectangle
{
@Override
protected void fillShape(Graphics graphics)
{
int oldAlpha = graphics.getAlpha();
graphics.setAlpha(128);
super.fillShape(graphics);
graphics.setAlpha(oldAlpha);
}
}
这样您就可以独立于轮廓设置填充的 alpha 值。
【解决方案2】:
setAlpha 应用于整个图形,这就是为什么它不适合你。您可能应该做的是在另一个内部创建两个图形,并仅更改内部图形的 alpha。我想不出另一种方法来做到这一点。
祝你好运