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

原创 2010年07月18日 11:02:00

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

爪哇米工作室 陈跃峰

出自:http://blog.csdn.net/mailbomb

注:转载请注明出处

 

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

1、如何判断横竖屏切换

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

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

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

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

B)sizeChanged(中断方式)

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

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

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

2、如何处理横竖屏切换

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

A)简单提示法

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

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

B)实现两套UI

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

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

3、其它说明

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

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

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

竖屏:Nokia-MIDlet-App-Orientationportrait

横屏:Nokia-MIDlet-App-Orientationlandscape

 

 

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

J2ME中横竖屏切换知识小结

前几天在清源教育网站看到这么一篇文章,感觉对像我一样的开发人员来说特别有帮助,现在贴出来,希望能帮助大家,另外清源教育网站上有不少这类技术文章,有兴趣得大家可以去看看。好了,话不多说,接下来进入正题:...
  • u011756235
  • u011756235
  • 2013年08月20日 15:31
  • 263

Swift-横竖屏切换

XCode中,我们一般通过以下方式来设置横竖屏 这样设置的话,就能让整个应用固定横竖屏。但是,有时候应用中要求某些页面需要固定竖屏,某些页面支持横竖屏切换,这时,上述方式就无法满足,我们需要额外...
  • tb_show
  • tb_show
  • 2017年05月18日 15:52
  • 1227

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

在Cocos2d-x上实现横竖屏切换 该demo使用引擎3.10版本,经测试在Android,PC上都OK 第一步在AppDelegate重写applicationScreenSizeChanged方...
  • HqZvezda
  • HqZvezda
  • 2016年05月11日 20:05
  • 3431

cocos2d-x游戏开发屏幕横竖屏切换

android解决方案: 1.在游戏的主activity中编写一个静态方法(继承Cocos2dxActivity) public static void changedActivityOrient...
  • aizhiqiang2
  • aizhiqiang2
  • 2016年03月24日 14:48
  • 3226

Fragment 横竖屏切换问题

在默认情况下当发生横竖屏切换时,当前Activity中的fragment都会通过Fragment.instantiate重新生成,该方法将使用默认的构造函数来生成相应的Fragment,所以如果没有默...
  • xingfeng2010
  • xingfeng2010
  • 2014年01月27日 17:41
  • 6434

IOS强制横竖屏切换

IOS横竖屏切换是一个很纠结的问题,之前项目中用到了,花了长时间查阅资料以及研究,才找到了一个相对靠谱的解决方案,该方案可以处理IOS9系统以上的屏幕翻转,至于IOS9一下的系统,还没有测试过。 为...
  • leilba
  • leilba
  • 2016年01月28日 22:56
  • 3296

Android屏幕横竖屏切换和生命周期管理的详细总结

Android屏幕横竖屏切换和生命周期管理的详细总结       一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置。        今天想...
  • wenzhi20102321
  • wenzhi20102321
  • 2017年04月01日 09:46
  • 3008

Android横竖屏切换总结

Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简...
  • jiangxinyu
  • jiangxinyu
  • 2013年02月21日 21:43
  • 86387

IOS代码管控APP页面横竖屏切换

IOS如何使用代码管控APP页面横竖屏切换? 这个我写了个小demo,下载链接 http://code4app.com/ios/53c78e77933bf098108b4ea0 ...
  • a351945755
  • a351945755
  • 2014年09月09日 18:33
  • 23221

解决android opengl es绘制物体屏幕横竖屏切换物体压扁形变以及矩阵相关知识

在android上如果手机屏幕由竖屏切换到横屏,这个时候Ui会发生变化,变形,通常在Android中我们可以通过写不同的xml来适配这种屏幕变化引起的ui布局变化。然而,在opengl es也会存在由...
  • pangrui201
  • pangrui201
  • 2017年07月20日 00:17
  • 441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2ME编程中的横竖屏切换知识小结
举报原因:
原因补充:

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