gpt4 book ai didi

codenameone - 放置一个按可用空间宽度缩放的图像

转载 作者:行者123 更新时间:2023-12-04 17:38:18 24 4
gpt4 key购买 nike

我创建了一个有效的代码,但我不确定这是放置自动缩放到可用宽度空间的 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);

最佳答案

更短的代码:

ScaleImageLabel sl = new ScaleImageLabel(bgImage);
sl.setUIID("Container");

您不应该覆盖绘画来设置首选大小。您应该重写 calcPreferredSize()。对于 ScaleImageLabel,它已经设置为图像的自然大小,应该相当大。

关于codenameone - 放置一个按可用空间宽度缩放的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55653623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com