博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2ME手机全屏幕问题
阅读量:2221 次
发布时间:2019-05-08

本文共 1333 字,大约阅读时间需要 4 分钟。

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
你可能感兴趣的文章
PHP项目用xhprof性能分析(安装及应用实例)
查看>>
composer安装YII
查看>>
Sublime text3快捷键演示
查看>>
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>