CodenameOne Image.rotate90Degrees()不适用于iOS

时间:2016-02-13 14:31:55

标签: image rotation codenameone

Image.rotate90Degrees()不适用于iOS,适用于模拟器和Android。

Nexus5 -Android上的图片没问题

[Nexus5]

但它在iPhone6Plus的底部变成了白色的正方形:

[iPhone6Plus]

以下是示例代码:

public void start()
{
    if(current != null){
        current.show();
        return;
    }
    Form hi = new Form(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER));
    Label label = new Label();
    hi.addComponent(BorderLayout.CENTER, label);

    Image image = pictures.getImage("000008.jpg");

    Image imageNew = Image.createImage(Display.getInstance().getDisplayHeight(), Display.getInstance().getDisplayWidth());
    Graphics graphics = imageNew.getGraphics();
    graphics.drawImage(image, 0, 0, imageNew.getWidth(), imageNew.getHeight());
    imageNew = imageNew.rotate90Degrees(false);
    label.setIcon(imageNew);

    hi.show();
}

1 个答案:

答案 0 :(得分:0)

由于图像被克隆,无论如何都不需要将图像绘制到新图像上。通常使用多图像slows down the application in iOS

如果您只在roateImage上执行image,它应该有用。由于6+是一个非常高的DPI设备,因此图像可能会在某个时刻超过某些纹理大小阈值。