我正在用 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