我正在使用GWT 2.03并且我有一个图像,我想部分放置在一个背景区域,部分位于背景之上。我正在使用FlexTable来尝试完成此操作并使用GIMP将图像分割为两个部分。我试图将图像的顶部加载到第0行,将图像的底部加载到第1行。我将顶部图像的对齐方式设置为ALIGN_BOTTOM,但是单元格的底部有一些空间,所以图片的两个部分不要碰。
这是一张显示我正在谈论的内容的图片。我将单元格的背景设置为黄色显示单元边界所在的位置。底部图像和背景正确渲染。
![alt text] [1]
[1]:http://www。 freeimagehosting。净/上传/ f02462d659.png
以下是相关的代码段:
FlexTable table = new FlexTable();
table.setCellSpacing(0);
table.setCellPadding(0);
table.setBorderWidth(0);
FlexCellFormatter formatter = table.getFlexCellFormatter();
table.setWidget(0, 0, topImage);
formatter.setStyleName(0, 0, "topImageStyle");
formatter.setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_BOTTOM);
table.setWidget(1, 0, bottomImage);
formatter.setStyleName(1, 0, "bottomImageStyle");
如何摆脱图像与细胞边界之间的空间?
答案 0 :(得分:2)
这是由标准渲染模式引起的(有关详细说明,请参阅this article)。
快速修复(适用于此情况)是将图像切片设置为display: block
样式。
PS:这个大小(2x1)可能无关紧要,但是当表的大小事先/已知时,应该使用Grid
- 它只提供比FlexTable
更好的性能。
答案 1 :(得分:0)
GWT有一个名为DecoratorPanel的类,它以此用例为目标。有关如何使用它的详细信息,请参阅the JavaDoc。
答案 2 :(得分:0)
我有一些建议: