Я пытаюсь сделать это:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
но это не работает.
Я пытаюсь сделать это:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
но это не работает.
Откройте файл .res в редакторе ресурсов и выберите предпочитаемую тему,
ПРИМЕЧАНИЕ. Приведенный выше код будет отображаться для всех диалогов в вашем приложении. Если вам нужен конкретный диалог с фоновым изображением, создайте новые стили из этих стилей по умолчанию и выполните описанные выше шаги, чтобы применить его к своему DialogMenuHawaii или любым диалоговым окнам среды выполнения.
КАК: я бы порекомендовал вам ознакомиться с сообщениями блога Shai Учебное пособие по редактору ресурсов LWUIT, часть 1 — часть 10. Чтобы лучше понять функции и возможности редактора ресурсов.
:
:
:
PS: Программно я не смог добиться этого с помощью TextArea, что характерно для диалоговых окон по умолчанию. Если вы замените компонент тела диалога на Label, если он работает нормально, пример кода приведен ниже. Я особо не вникал, почему так? возможно, сделаю это в свободное время. Поэтому я предложил рабочее альтернативное решение, которое написано выше с помощью Resource Editor и ниже с использованием кода
class MyDialog extends Dialog {
public void show() {
Container octnPane = this.getDialogComponent();
octnPane.getUnselectedStyle().setBgTransparency(0, false);
Container ctnPane = (Container)((BorderLayout)octnPane.getLayout()).getCenter();
ctnPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED, false);
ctnPane.getUnselectedStyle().setBgImage(myImage, false);
Label t = new Label("Dialog");
t.setUIID("DialogBody");
t.getUnselectedStyle().setBgTransparency(0, false);
ctnPane.addComponent(t);
super.show();
}
}
Во-первых, я предлагаю вам использовать тему. Мы постоянно меняем мелкие детали реализации, например. настройки, подобные той, которую вы делаете, не будут переносимы между LWUIT 1.4 и 1.5. Нет никаких причин не использовать тему для чего-то подобного.
Если вы заинтересованы в боли и страданиях ручного кодирования логики представления в вашем приложении, вы можете использовать несколько методов, таких как getDialogComponent()
, чтобы получить от них стиль и манипулировать им. Диалог — сложный зверь из-за того, что на самом деле это форма, отодвинутая от краев.
Это для фона диалога.
Dialog dialog = new Dialog();
dialog.getDialogStyle().setBgImage(Image.createImage("/image/image.png"));
Если вы хотите установить прозрачность Диалога с изображением.
dialog.getStyle().setBgImage(Image.createImage("/image/image.png");