代号一个模拟器只显示图片的中间

时间:2017-08-02 06:21:39

标签: image codenameone

我使用下面的代码从网址获取图片。在模拟器中,只有图片的中间中心显示正确的高度,但图像被拉伸,看起来它需要从中心高度的原始图片的1/3。如何在模拟器中获得完整的图片?

EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(100, 100, 0xf0f00000), false);
URLImage img = URLImage.createToStorage(placeholder, "profilbillede.jpg", URL, URLImage.RESIZE_SCALE);
img.fetch();

                    //border container
Container ct = new Container(new BorderLayout());
ct.add(BorderLayout.NORTH, new Label(""))
      .add(BorderLayout.WEST, new Label(""))
      .add(BorderLayout.EAST, new Label(""))
      .add(BorderLayout.SOUTH, new Label(""));
ScaleImageLabel picture = new ScaleImageLabel(img);
ct.add(BorderLayout.CENTER, picture);
home.add(ct);

2 个答案:

答案 0 :(得分:2)

您的图片将根据占位符图片的大小下载和创建。在这种情况下,100 x 100px。我建议您使用该设备通过将占位符声明行更改为:

来正确缩放图像
EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(CN.getDisplayWidth(), CN.getDisplayWidth(), 0xf0f00000), false); //or half of the screen width by dividing CN.getDisplayWidth() to 2

我还建议您在URLImage.RESIZE_SCALE_TO_FILL方法中使用URLImage.RESIZE_SCALE代替URLImage

先前缓存的图像将被使用,直到它被清除。要清除它们,请转到用户主文件夹并查找.cn1文件夹。在Windows上,它位于C:\Users\UserName

答案 1 :(得分:0)

CreatetoStorage中的

不使用文件扩展名