FullCanvas与Canvas全屏模式真机使用分析

FullCanvasNOKIA所创造的扩展包中的类,其可以替换掉MIDP2.0Canvas,并直接提供了全屏实现,并且相比与MIDP中的CANVAS做了一些NOKIA机型所支持的特殊操作,处理。本文主要讨论两种实现全屏的方式在各类机型中的真实表现,并对大家做机型扩展时的选择有所帮助。

 

首先目前主要有两大厂商对FullCanvas提供了支持,分别为NOKIA和索爱.但索爱对FullCanvas的支持不是很好,在模拟器上不会出现问题,但在真机中会出现取不到正确的全屏高度,这个在索爱大屏(240*320)的机型中特别明显,如果你使用getHeight()的方式来获取高度再进行计算绘制的话,那绘制出来的界面就不是全屏的了,而索爱对MIDP2.0中的全屏方式支持是OK的。

 

NOKIAFullCanvas的支持就很好,不会出现这样的问题,但NOKIAMIDP 2.0 Canvas的全屏实现方式setFullScreenMode(true)支持很差,在S60的机型中会出现不能同步取到正确全屏高度,而获取到的是非全屏高度。

 

MOTO的机型不支持FULLCANVAS,并且对MIDP 2.0 CANVAS 的全屏方式也支持的很差,同样不能保证能同步取到正确的全屏高度,这个在V3,E398这些机型中几乎是100%有这个问题,而E680这些机型就不会有这些问题。

 

要解决这种问题,当然最直接的就是写死全屏高度,并且以后的坐标计算都使用这个高度进行计算,不要使用getHeight(),但如果你想做一个自适应的UI设计这种方式就不适用了。

我们从上面的分析可以知道NOKIAFullCanvas支持很好,索爱对MIDP 2.0的全屏方式支持很好,那我们做自适应的UI版本是就可以索爱的使用MIDP2.0的方式,而NOKIA的使用FullCanvas,这样至少可以保证NOKIA和索爱机型实现自适应。而MOTO的话,在V3.E398机型中只能写死高度了,通常都是在获取的高度加2122的高度来实现全屏。

 

  通过这两种方式在不同机型的实现情况,可以看出各种机型对J2ME的支持都不统一规范,甚至对MIDP2.0的标准都不能完全规范实现。我们在做多个版本时只能根据他们的特性进行区分实现了,而这也增加了我们程序开发和后期版本管理的复杂度(一个自适应的程序都必须至少要有3种包)。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值