如何在Codename One中控制/缩放图像大小?

4

我使用了(新的)GUI Builder并插入了一张图片(通过添加一个标签)。但是,它看起来太大了。有没有办法可以缩放和控制尺寸?(我看到了指向Cloudinary的内容,但那似乎太复杂了。我只想简单地缩小图片。)


我在GUI Builder中四处查找,但没有找到控制图像大小的方法。 - ikevin8me
1个回答

4

在Codename One中,有几种调整图像大小的方法,下面我将提到其中的一些:

1.

在GUI Builder中使用MultiImages。使用此功能,可以从一个图像生成多个大小的图像,其大小基于您指定的大小。在GUI Builder中,单击“Images” -> “Add Multi Images” -> 选择您的图像 -> 选中“Preserve Aspect Ratio” -> 增加代表您希望图像占用的屏幕宽度百分比的%。将任何不需要的DPI设置为0。

2.

使用ScaledImageLabel或ScaledImageButton,它会调整图像大小以填充组件所占用的可用空间。

3.

在代码中缩放图像本身(这不是高效的方法)

public static Image getImageFromTheme(String name) {
    try {
        Resources resFile = Resources.openLayered("/theme");
        Image image = resFile.getImage(name);
        return image;
    } catch (IOException ioe) {
        //Log.p("Image " + name + " not found: " + ioe);
    }
    return null;
}

Image resizedImage = getImageFromTheme("myImage").scaledWidth(Math.round(Display.getInstance().getDisplayWidth() / 10)); //change value as necessary

4.

改变图像(以另一张图像为基础创建一张新的图像)。


我使用了ScaledImageLabel,它确实缩小了图像。图像比原始图像要小。然而,它仍然没有缩小到足以适应视觉区域(即显示的图像虽然已经缩小,但仍然不够小,因此在显示时仍然被裁剪)。代码在这里的show()方法中:[https://dev59.com/MaDha4cB1Zd3GeqP-R2Z] - ikevin8me
图片长什么样?您能否编辑您的问题并添加一张截图? - Diamond
你可能正在寻找“缩放以适应”选项,你可以在该组件中切换它。我认为它默认为“缩放以填充”。 - Shai Almog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接