ScaleImageLabel不能在更大的屏幕上缩放图像

时间:2018-08-20 22:41:46

标签: codenameone

我正在使用ScaleImageLabel在侧面菜单中显示图像。图像在较小的设备屏幕上可以正确缩放,但在较大的屏幕上不能正确缩放。空间将显示在图像的左右两侧。请告知我是否需要对ScaleImageLabel应用任何其他设置以相应地缩放它。我正在使用JPEG。我尝试过FIT和FILL。 FILL使图像以缩放格式显示,并且看不到完整的图像。 FIT在手机上可以正确显示图像,而在平板电脑上可以显示较小图像。

1 个答案:

答案 0 :(得分:0)

您看到的是纵横比缩放的限制。分配给徽标的尺寸与徽标的首选尺寸相同。默认情况下,这是图像的实际大小。

因此,徽标没有任何地方可以垂直“增长”,而不会扭曲其形状或将其截断。您可以覆盖首选的size方法以返回更合适的大小。您可以对可用大小进行复杂的计算,但是我建议您使用毫米大小之类的简单实现,只需根据您的喜好进行调整即可:

ScaleImageLabel sl = new ScaleImageLabel(Backend.instance.getLogo()) {
   protected Dimension calcPreferredSize() {
        int size = convertToPixels(10);
        return new Dimension(size, size);
   }
};