zoukankan      html  css  js  c++  java
  • J2ME手机全屏幕问题

     J2ME游戏手机全屏幕(这里指标准MIDP2.0使用setFullScreenMode(true);)

    做过多种机型产品的朋友都知道,虽然标准MIDP2.0支持setFullScreenMode设置全屏幕,但是之后使用getWidth(), getHeight()来取得屏幕宽高的时候会发现,很多机型都没有全屏,那叫一个郁闷啊,所以这里我写下这篇文章,帮助大家来解决这个问题。
     
    1、改方法适用于国内基本所有机型S60、S40、MOTO等,以及SoftBank 3GC等。
     
    2、不能全屏的主要解决办法2个:
    a)        使用系统自带sizeChanged()来取得屏幕宽和高;
    b)       在Canvas类的构造函数里使用setFullScreenMode,然后保证构造函数结束后再调用getWidth( ), getHeight( )
    因为每种机器可能需要的方法不一样,所以下面写了个updateScreen函数,多次调用,保证各个方法都使用到,多重保险,通用性比较好。
     
    3、代码实现:
    class MyCanvas extends Canvas implements Runnable {
           static int scrW=0;
           static int scrH=0;
    public MyCanvas( ){
    print(System.getProperty("microedition.platform"));
    setFullScreenMode(true);
    //延时是以防万一,基本不需要,可以去掉;如果特殊情况不行,延时可以加到1000试试。
    Thread.sleep (100);
    updateScreen(getWidth(), getHeight()); 
    Thread mythread = new Thread(this);
    mythread.start();
    }
    protected void sizeChanged(int w, int h) // setFullScreenMode后系统自己调用,实现就行
    {
           updateScreen(w, h);
    }
    public void updateScreen(int _w, int _h)
    {
           scrW = _w;
    //因为updatescreen会被调用很多次,所以这里有个判断,如果高度没有变化,就不重复处理
           if(_h>scrH) scrH = _h;       else return;
    //如果使用了双缓冲,应该在这里设置
    //      if(useDoubleBuffer) bufferImage=Image.createImage(scrW,scrH);
    }
    public void run( )
    {
            updateScreen( getWidth(), getHeight() );
    }
    public void paint(Graphics g){
    //TODO
    }
    }//end of class MyCanvas
    转载请保留以下信息:
    作者(Author):smilelance
    时间( Time ):2006.12.12
    出处( From ):http://blog.csdn.net/smilelance
  • 相关阅读:
    redis基本操作 —— hash
    redis基本操作 —— string
    redis —— linux下源码安装
    zookeeper c api 安装 & 连接 zookeeper
    wpa_supplicant移植(2.9版本)
    hostapd移植(2.6版本为例)
    hostapd移植(2.7版本)
    使用MKdocs搭建个人主页并关联到GithubPages上
    yolov5的yaml文件解析
    RANSAC——(RANdom SAmple Consensus(随机抽样一致))
  • 原文地址:https://www.cnblogs.com/secbook/p/2655500.html
Copyright © 2011-2022 走看看