我在组件之间遇到一个或两个像素的绘图像差,背景在其中发光。所涉及的组件的边距为0,因此不应有任何穿透的空隙。
为了说明:一个简单的具有背景图像的表单,一个带有白色背景的内容容器和工具栏的南部组件,都具有一个圆形的图像(也为白色),以使工具栏和内容之间在视觉上具有吸引力:
从第二个图中可以看出,在特殊情况下,工具栏和内容容器之间会画一条细线,这会带来可怕的视觉冲击。
要重现:
我以为这与未选择/选择/按下的UIID样式有关,但是我将未选择的样式复制到了相同的空白处,但空白没有改变。
这是可复制的最少代码:
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form(new BorderLayout());
addToolbar(hi);
addContent(hi);
hi.show();
}
private void addToolbar(Form hi) {
Toolbar toolbar = hi.getToolbar();
toolbar.setUIID("Container");
toolbar.setTitle("Title");
Label divider = new Label(" ", "ToolbarDivider");
toolbar.add(BorderLayout.SOUTH, divider);
Label spacer = new Label(" ", "ToolbarSpacer");
toolbar.add(BorderLayout.EAST, spacer);
}
private void addContent(Form hi) {
Container whiteContainer = new Container();
whiteContainer.getAllStyles().setBgColor(0xffffff);
whiteContainer.getAllStyles().setBgTransparency(255);
whiteContainer.add(new Label("content"));
hi.add(BorderLayout.CENTER, whiteContainer);
}
注意:ToolbarDivider是一种样式,可将白色的圆角图像作为背景,且边距和填充为零。工具栏空格键的顶部具有一个空白,它被添加到工具栏的右侧以使其更大且更具吸引力(我的应用程序在工具栏中显示了更多内容)。
对于为什么出现此行的任何帮助,将不胜感激。