J2ME编程 横竖屏切换知识总结

开发 后端
Java ME 以往称作J2ME,是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。本文主要介绍J2ME编程中,对于手机横竖屏切换知识总结。

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

1、如何判断横竖屏切换

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

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

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

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

B)sizeChanged法(中断方式)

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

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

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

2、如何处理横竖屏切换

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

A)简单提示法

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

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

B)实现两套UI法

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

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

3、其它说明

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

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

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

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

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

 

 

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

 

原文地址:http://blog.csdn.net/Mailbomb/archive/2010/07/18/5743942.aspx

【编辑推荐】

  1. 备考cookie技术在J2ME平台的应用
  2. JDK、J2EE、J2SE、J2ME概念详解
  3. J2ME中setClip方法的使用详解
  4. J2EE、J2SE、J2ME是什么意思?
  5. 开发适应中国网络的J2ME连网程序
责任编辑:于铁 来源: 爪哇米工作室
相关推荐

2010-09-29 08:57:04

J2ME前景

2010-09-28 16:05:36

J2ME技术J2MEWTK

2011-09-01 16:45:15

J2MELua

2009-06-30 15:49:00

J2ME编程

2010-09-29 09:19:39

J2ME开发工具

2009-10-19 13:59:39

J2ME编程开发平台

2011-07-21 16:03:12

J2ME

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 13:28:55

J2ME图形

2010-09-30 09:56:26

J2ME Polish

2009-06-23 11:30:16

RMSJ2ME

2009-05-26 17:20:51

多线程J2METhread

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2009-07-09 16:06:10

JDK J2EE J2

2010-09-29 16:20:06

J2MEWeb服务API

2011-12-02 10:37:14

JavaJ2ME

2010-09-29 13:09:48

OTAJ2ME程序

2010-09-30 12:53:00

J2MECSS

2010-09-29 13:23:12

J2MEPIM
点赞
收藏

51CTO技术栈公众号