#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
применяется ко всей фигуре, вот почему она не работает для вас. Вероятно, вам следует создать две фигуры одну внутри другой и изменить альфа только внутренней фигуры. Я не могу придумать другого способа сделать это. Удачи вам