如何设置对话框的背景图像?
-
25-10-2019 - |
题
我正在尝试这样做:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
但这行不通。
解决方案
在资源编辑器中打开您的“ .res”文件,然后选择您的首选主题,
- 在“未选择”标签下打开 DialogContentPane 样式,如果您没有一个创建,它会查看有关如何做的答案的结尾?
- 在“未选择”标签下打开 对话框 样式,如果您没有一个人创建它,请查看该答案的结尾,并将背景透明度设置为'0'并确保背景图像类型是 没有任何
笔记: :上面的代码将反映您应用程序中的所有对话框。如果您想要具有背景图像的特定对话框,而不是从这些默认样式中获取新样式,并按照上述步骤将其应用于您的 Dialogmenuhawaii 或任何运行时 对话.
如何: 我建议您浏览Shai的博客文章 LWUIT资源编辑教程第1部分 直到第10部分。要更好地了解Resouce编辑器其功能和功能。
:
:
:
PS: 程序化 - 我无法使用 textarea 默认对话框就是这种情况。如果您将对话框组件替换为 标签 如果正常工作,则在下面给出代码样本。我没有太多研究为什么这样做?也许会在我的业余时间做。因此,我提出了一种工作替代解决方案,该解决方案使用资源编辑器和下面使用代码进行了脚本脚本
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();
}
}
其他提示
首先,我建议您使用 主题. 。我们不断地更改小型实施详细信息,例如您正在执行的定制详细信息,将不会在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");
不隶属于 StackOverflow