Кнопка Tripleplay: кнопка изображения с прозрачным фоном - PullRequest
1 голос
/ 11 февраля 2012

Как сделать кнопку изображения с прозрачным фоном?

Фон по умолчанию серого цвета, я создал кнопку с пустым текстом и setIcon, что-то вроде этого:

    backButton = new Button(); //"Back");
    backButton.setIcon(backIcon);

    iface.createRoot(AxisLayout.vertical(), ROOT, modeLayer).
            setStyles(make(VALIGN.top, HALIGN.right)).
            setBounds(0, 0, width, height).
            add(backButton);

Но не смог понять, как сделать кнопку прозрачной из API / исходного кода.

Любая помощь / подсказка очень ценится.

1 Ответ

2 голосов
/ 12 февраля 2012

Вы хотите использовать Style.BACKGROUND.

Если вы хотите, чтобы все кнопки в вашем пользовательском интерфейсе имели пустой фон, настройте корневую таблицу стилей следующим образом:

Stylesheet ROOT = SimpleStyles.newSheetBuilder().
 add(Button.class, Styles.none().
   add(Style.BACKGROUND.is(new NullBackground())).
   addSelected(Style.BACKGROUND.is(new NullBackground()))).
 create();

Root root = iface.createRoot(AxisLayout.vertical(), ROOT, modeLayer).etc().

Если вы просто хотите, чтобы у определенной кнопки был пустой фон, настроить его по кнопке:

Styles blankBg = Styles.none().
   add(Style.BACKGROUND.is(new NullBackground()))
   addSelected(Style.BACKGROUND.is(new NullBackground());

Button backButton = new Button().addStyles(blankBg).setIcon(backIcon);

Обратите внимание, что SimpleStyles определяет фон для кнопок. Если вы начинаете с полностью пустой таблицы стилей, вы можете опустить определения фона для ваших кнопок, и они будут пустыми.

...