Eclipse RCP Draw2d Transparency (setAlpha) делает границы / контуры невидимыми - PullRequest
1 голос
/ 22 октября 2011

Мы предоставляем пользователям возможность сделать рисунки на холсте прозрачными. Для этого мы используем метод setAlpha (0). Но это делает фигуру совершенно невидимой.

Наше требование заключается в том, чтобы контур / граница отображались на прозрачных фигурах, если пользователь желает иметь границы.

Мы пытались использовать метод setOpaque (false). Но это не работает. Мы используем Ubuntu 9.1 OS.

Любое предложение для достижения этой цели будет действительно полезным.

С уважением, Панкадж Шарма

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Вы можете расширить 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);
  }
}

Таким образом, вы можете установить альфа-значение для заливки независимо от контура.

0 голосов
/ 22 октября 2011

setAlpha применяется ко всей фигуре, поэтому она не работает для вас.Что вам, вероятно, следует сделать, это создать две фигуры одна внутри другой и изменить только альфа внутренней фигуры.Я не могу придумать другой способ сделать это.Удачи

...