我正在用 j2me 编程。对于所有支持屏幕旋转的手机,如何防止 j2me 中的屏幕旋转?
谢谢。
如果您使用 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.html和http://smallandadaptive.blogspot.com.br/2010/03/adapting-to-sizechanged.html和http ://smallandadaptive.blogspot.com.br/2011/04/sizechanged-not-called.html
添加到清单
对于诺基亚设备: Nokia-MIDlet-App-Orientation:横向
对于三星设备: MIDlet-ScreenMode : Landscape