Прозрачность Eclipse RCP Draw2d (setAlpha) делает границы / контур невидимыми

#eclipse #transparency #rcp #draw2d

#eclipse #прозрачность #rcp #draw2d

Вопрос:

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

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

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

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

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

Ответ №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);
  }
}
 

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

Ответ №2:

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