J2ME的全屏适配问题

来源:百度文库 编辑:神马文学网 时间:2024/05/01 23:33:02
一般是常用的尺寸都做好需要的对应的素材,常见的一些屏幕尺寸128x160,176x208,208x208,240x320,还有WVGA(320*480),HVGA(480*800),最后还得准备一个通用版的,或者一个比较小的版本,如果碰到不能判断和适合的版本,就只能尽量用小屏幕的版本。反正手机开发,一般都是分好多版本,毕竟手机的各种配置太多样化了
=======================================================用预编译,写死,有些机器不能通过getHeight(),getWidth()正确取得高宽的。
=======================================================获得屏幕的宽度和高度

尽量使用相对坐标,也就是根据宽度和高度计算位置

尽可能少的使用图片
=======================================================我引用论坛一个朋友的帖子,你可以看看
全屏问题
关键字列表:全屏/FullCanvas/setFullScreenMode 9
问题:SonyEricsson T630
该款手机的参数:索尼爱立信 T630 SonyEricssonT630R401 ProfileMIDP-1.0 ConfigurationCLDC-1.0。“据我所知,不可以实现全屏显示。”
问题:SonyEricsson K700c
k700c 直接用nokia的FullCanvas,可以全屏176 x 220。
k700c用midp2.0的那个this.setFullScreenMode(true);也是可以全屏的,176x220。
k700c直接用nokia的FullCanvas全屏好像是176*208,直接拿nokia60上的程序可以直接放进去。键值和60的也是相同的,只是多了一个返回键,我忘了值是多少了。用2.0的GameCanvas大小是176*220。
问题:不使用FullCanvas实现全屏的方法
为了用标准的SUN WTK2.1开发能兼容各种机型的MIDP2.0游戏,会遇到一个奇怪的全屏问题,在K700上好好的,到了Nokia上居然死活显示一半,费了一番功夫后,终于不用FullCanvas实现了兼容K700和Nokia的全屏显示,方法如下:
在索爱的K700上,实现全屏很简单,如下写法就可以了:

public Canvas1()
{ super(false);
this.setFullScreenMode(true);
this.width=getWidth();
this.height=getHeight();
} 得到的屏幕大小是176*220。

Nokia上就比较奇怪了,这种方式取得的width和height居然是176*144。
需要加以下代码修正一下:
if(width>=176)
{ if(height<208)
{
height=208;
}
} 绘图部分都以width和height为基准。
另外canvas1不能继承系统的GameCanvas,因为系统GameCanvas里的缓冲图还是176*144的,画出来就只能是半屏,我用j2me polish里的GameCanvas修改一下后,放到src里代替系统GameCanvas就OK了。
==========================================其实大家都没注意到Canvas的一个方法:protected void sizeChanged(int w, int h) ,不在这个方法中处理屏幕尺寸,出现各种怪现象就很正常了。