Кнопка Tripleplay: кнопка изображения с прозрачным фоном
Как сделать кнопку с прозрачным фоном?
Фон по умолчанию серого цвета, я создал кнопку с пустым текстом и 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 ответ
Вы хотите использовать 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 определяет фон для кнопок. Если вы начинаете с полностью пустой таблицы стилей, вы можете опустить определения фона для ваших кнопок, и они будут пустыми.