0

我正在用 j2me 编程。对于所有支持屏幕旋转的手机,如何防止 j2me 中的屏幕旋转?

谢谢。

4

2 回答 2

2

如果您使用 Canvas 绘制屏幕(不是 LCDUI,不是 LWUIT,不是任何其他框架),您可以实现 sizeChanged 方法以在发生旋转时得到通知。

在这种情况下,您可以将屏幕绘制到图像并使用 Sprite 旋转它。例如,为了只支持横向模式,我在构造函数中使用了以下代码:

    int width = Math.max(super.getWidth(), super.getHeight());
    int height = Math.min(super.getWidth(), super.getHeight());
    // screen 和 sprite 是属性
    屏幕 = Image.createImage(宽度,高度);
    精灵 = 新精灵(屏幕);
    if (super.getWidth() < super.getHeight()) { // 竖屏
        sprite.setTransform(Sprite.TRANS_ROT90);
        sprite.setPosition(0, 0);
    }

以及以下方法:

    公共无效 sizeChanged (int w, int h) {
        // lastWidth 和 lastHeight 是属性
        最后宽度 = w;
        最后高度 = h;
        如果(精灵 == null)返回;
        if (super.getWidth() < super.getHeight()) { // 竖屏
            sprite.setTransform(Sprite.TRANS_ROT90);
        } 别的 {
            sprite.setTransform(Sprite.TRANS_NONE);
        }
        sprite.setPosition(0, 0);
    }

    受保护的空漆(图形g1){
        if (super.getWidth() != lastWidth
            || super.getHeight() != lastHeight) {
            sizeChanged(super.getWidth(), super.getHeight());
        }
        图形 g = screen.getGraphics();
        // ... 在 g 上绘图
        this.sprite.setImage(screen, screen.getWidth(), screen.getHeight());
        sprite.paint(g1);
    }

http://smallandadaptive.blogspot.com.br/2009/08/fullscreen-landscape.htmlhttp://smallandadaptive.blogspot.com.br/2010/03/adapting-to-sizechanged.htmlhttp ://smallandadaptive.blogspot.com.br/2011/04/sizechanged-not-called.html

于 2012-05-25T11:50:02.053 回答
1

添加到清单

对于诺基亚设备: Nokia-MIDlet-App-Orientation:横向

对于三星设备: MIDlet-ScreenMode : Landscape

于 2012-05-25T11:51:53.927 回答