J2ME编程中的横竖屏切换知识小结

转载 2011年01月11日 09:51:00

随着手机的功能越来越丰富,支持横竖屏切换的手机越来越多,在手机软件开发中也必须要处理这个功能了。下面对于使用J2ME技术进行编程时对于横竖屏(转屏)切换时的相关知识进行一下小结。

  1、如何判断横竖屏切换

  横竖屏切换由手机系统自动完成的,在J2ME中只能检测到这种变换,判断横竖屏切换的方法有2种:

  A)线程中每次检测法(轮询方式)

  这种方式是在程序的线程中每隔一定的时间间隔,就获得一次屏幕的宽度和高度,然后判断宽度和高度是否变化,如果宽度和高度和已有的宽度和高度相比发生了变化,至于是变化成横屏还是竖屏则只需要比较宽高就可以实现。在判断到横竖屏切换时,执行逻辑代码即可。

  使用这种方式由于每次线程循环都需要检测,所以执行效率不高,但是由于一些转屏手机不支持sizeChanged的方法回调,所以使用这种方式的通用性是最高的,是经常被使用的方法。

  B)sizeChanged法(中断方式)

  这种方式是指如果转屏手机对于MIDP支持比较规范,则当横竖屏切换时会自动调用Canvas类中的sizeChanged方法,这样就需要在Canvas的子类中覆盖该方法即可,在该方法内部书写横竖屏切换的逻辑处理代码即可。

  使用这种方式由于是系统自动调用,所以执行效率很好,但是由于部分手机实现的不规范,所以通用性没有第一种方式高。

  说明:高级用户界面自动切换,不需要书写处理的代码。

  2、如何处理横竖屏切换

  在检测到横竖屏切换以后,就需要对于横竖屏切换进行处理了,处理的方式一般有也有两种:

  A)简单提示法

  这种处理方式时指只实现一种屏幕模式下的逻辑,而在另外一种屏幕方式下显示提示。例如只实现竖屏模式的界面,在横屏模式下,只出现提示:“请在竖屏模式下使用本程序”。

  使用这种方式程序实现比较简单,只需要实现一套界面即可,适合于比较简单的程序。

  B)实现两套UI法

  这种处理方式时指在一个程序中实现两套界面:一套横屏一套竖屏。可以在程序中设置一个screenType的参数,在每个节目的绘制方法中根据该参数判断是横屏还是竖屏,然后执行不同的绘制代码即可。

  使用这种方式程序实现比较友好,但是程序开发和测试的工作量都要稍微大一点,而且横竖屏切换时数据的变换也比较麻烦。

3、其它说明

  在实现横竖屏切换时,有些知识会帮助你实现一些很实用的功能:

  A)在Nokia手机上禁止横竖屏切换:

  在S60 5th 及以上版本中,可以通过在jad或manifest文件中通过指定如下属性来指定程序运行时的屏幕类型:

  竖屏:Nokia-MIDlet-App-Orientation:portrait

  横屏:Nokia-MIDlet-App-Orientation:landscape

  不足之处希望大家积极指正、交流和完善!

相关文章推荐

亲测Android横竖屏切换小结,带测试结果

以前无意中看到说Android横竖屏切换生命周期的问题,一直很好奇。在开发中也是为了避免Activity的UI重绘导致内存的消耗,我们一般在AndroidManifest.xml文件中给每个Activ...

Android横竖屏切换相关知识点

转载自:http://www.cnblogs.com/franksunny/p/3714442.html (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.c...

Android编程示例之——横竖屏切换动画

设计思路:        利用接口View::onConfigurationChanged,来捕获横竖屏幕切换事件,然后对控件使用动画。 实施步骤: 1),对Activity设置属性:andro...
  • zaq123q
  • zaq123q
  • 2011年12月08日 11:09
  • 438

【H5+ & Quick-cocos2dx整合】之iOS 五 横竖屏切换处理

ios屏幕视图分为竖屏视图和横屏视图,横屏视可以旋转而竖屏视图则不可以。在viewcontroller中有三个系统级的方法来控制当前屏幕视图的操作。 shouldAutorotate:是否可以旋转;...

【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(27种)以及设置屏幕横竖屏!

Himi 原创,转载请注明! 原文地址:http://blog.csdn.net/xiaominghimi/article/details/6651281        CCSce...
  • Jerke
  • Jerke
  • 2012年02月21日 15:36
  • 206

在Cocos2d-x上实现横竖屏切换

在Cocos2d-x上实现横竖屏切换 该demo使用引擎3.10版本,经测试在Android,PC上都OK 第一步在AppDelegate重写applicationScreenSizeChanged方...

【iOS-Cocos2d游戏开发】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!

CCScene 对于使用cocos2d的童鞋肯定很熟悉,那么在使用   [[CCDirectorsharedDirector]replaceScene:];  对scene进行场景(CCLayout)...

Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(2)

配置了configChange属性之后,横竖屏切换时不用再杀死和重新启动Activity了,想想Android系统设置这个属性的初衷,横竖屏切换时需要加装不同的变量信息,因此杀死当前Activity启...

横竖屏切换

  • 2014年09月18日 10:21
  • 75KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2ME编程中的横竖屏切换知识小结
举报原因:
原因补充:

(最多只允许输入30个字)