【问题标题】:How to control/scale image size in Codename One?如何在代号一中控制/缩放图像大小?
【发布时间】:2017-08-08 21:15:48
【问题描述】:

我使用了(新的)GUI Builder 并插入了一张图片(通过添加标签的方式)。但是,它似乎太大了。无论如何我可以缩放和控制大小吗? (我看到了一些指向云的东西,但这似乎太复杂了。我只想简单地缩小图像。)

【问题讨论】:

  • 我在 GUI Builder 周围看了一圈,但找不到任何控制图像大小的方法。

标签: codenameone


【解决方案1】:

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

1.

在 GUI Builder 中使用 MultiImages。有了这个根据您指定的尺寸从一个图像生成多种尺寸的图像。在您的 GUI Builder 中,单击图像 -> 添加多个图像 -> 选择您的图像 -> 检查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() 方法中:[ stackoverflow.com/questions/42871223/…
  • 图片是什么样的?介意编辑您的问题以添加屏幕截图吗?
  • 您可能正在寻找可以在该组件中切换的“缩放以适应”。我认为它默认为“缩放填充”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 2012-06-10
  • 1970-01-01
  • 2011-08-22
  • 2015-07-06
相关资源
最近更新 更多