URLImage的大小作为Label图标

时间:2016-09-15 18:00:53

标签: image codenameone scaling

我的目标是下载任意大小的图像,对其应用圆形遮罩,并在屏幕上显示尺寸为512 x 512的图像。

我尝试使用带有512 x 512占位符和圆形遮罩的URLImage并通过Label将其放在setIcon()上。然而,当图像以其自然尺寸绘制时,标签获得正确的高度(512),呈圆形。我希望它垂直填充标签,保留纵横比。

我的代码:

           EncodedImage img = URLImage.createToStorage(
                roundPlaceholder, // roundPlaceholder is 512 x 512  
                "rounded" + uid, 
                imageUrl, 
                URLImage.createMaskAdapter(mask)); // mask is 512 x 512 

           myLabel.setIcon(img); 

我错过了什么,或者不是这样做的?

2 个答案:

答案 0 :(得分:1)

尝试此操作:以自然大小下载图片,但保留占位符大小。确定宽度或高度是否更长,并使用图像类的.scaledWidth或.scaledHeight方法调整其大小并保留纵横比。在应用之前,您可能需要做更多的工作来确保您的蒙版大小与图像匹配。

答案 1 :(得分:0)

掩码适配器的默认行为是"缩放以填充"不是自然的大小。所以这可能会误导你。你可能期望一个"规模适合"方法,但这可能会有问题,因为它可能会产生空白点。

请参阅:https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/ui/URLImage.java#L175-L183