【发布时间】:2019-04-13 04:19:24
【问题描述】:
我创建了一个有效的代码,但我不确定这是放置自动缩放到可用宽度空间的Image 的最佳方式。我需要在该图像上放置一些内容,所以我有一个LayeredLayout:在第一层有使用以下代码创建的Label,在第二层有一个具有相同大小的BorderLayout图片。
下面的代码好还是可以做得更好?
Label background = new Label(" ", "NoMarginNoPadding") {
boolean onlyOneTime = false;
@Override
public void paint(Graphics g) {
int labelWidth = this.getWidth();
int labelHeight = labelWidth * bgImage.getHeight() / bgImage.getWidth();
this.setPreferredH(labelHeight);
if (!onlyOneTime) {
onlyOneTime = true;
this.getParent().revalidate();
}
super.paint(g);
}
};
background.getAllStyles().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
background.getAllStyles().setBgImage(bgImage);
【问题讨论】:
标签: codenameone