您的位置:首页 > 产品设计 > UI/UE

setFullScreenMode(true)解决方法

2009-12-29 11:59 288 查看
开发过j2me的或多或少都会碰到一些手机的bug(噢,说错了,抬举他们了,是一定会碰到,O(∩_∩)O~)

这里要说的是Canvas.setFullScreenMode(true)的bug,真机表现的五花八门,有正常的,显示一半的,没反应的

因为为了程序的性能,一般程序中都不会直接在paint()中直接调用getHeight()和getWidth(),一半在初始话的时候如下:

this.setFullScreenMode(true);

screenW = this.getWidth();

screenH = this.getHeight();

此时你是否会发现,很多手机返回的screenH是错的,好了,下面就是为了解决这个问题的:

---------------

初始化时,如下代码:

int oldScreenH = this.getHeight();

this.setFullScreenMode(true);

screenW = this.getWidth();

screenH = this.getHeight();

if(screenH > oldScreenH){

isSizeChange = true;

}

---------------

一般你的程序肯定会有个加载界面,在加载中如下:

new Thread(){

public void run(){

boolean sign = true;

while(sign){

//等界面已经更变才开始真正运行程序

if(isSizeChange){

sign = false;

//开始运行真正的需要的程序

}

}

}

}.start();

---------------

//在Canvas中重写sizeChanged

protected void sizeChanged(int w, int h) {

if(h < screenH || isSizeChange){

return;

}

this.screenW = w;

this.screenH = h;

isSizeChange = true;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐