J2ME手机全屏幕问题
2006-12-12 19:09
381 查看
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
做过多种机型产品的朋友都知道,虽然标准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
相关文章推荐
- J2ME手机全屏幕问题
- J2ME手机全屏幕问题
- [cnblogs镜像]Unity 手机屏幕翻转问题 横屏
- android不同屏幕大小手机的适配问题
- 解决手机自带浏览器上,用rem单位,内容超出屏幕宽度问题!(rem计算不准)
- 关于如何用rem兼容不同手机屏幕大小不一致问题以达到多终端自适应问题
- J2ME手机屏幕的切换
- New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题
- Android手机获取屏幕分辨率高度因虚拟导航栏带来的问题
- 手机屏幕适配遇到虚拟键的问题
- 本来刚学j2me手机编程,遇到一个问题,可能比较浅,请不吝赐教!
- Unity 手机游戏屏幕翻转问题
- 【问题】手机页面左右晃动,页面宽度超出手机屏幕宽度
- J2ME 用来处理手机游戏中长字符串显示问题,自己写的,仅作参考
- J2ME做手机游戏的问题
- J2ME开发之手机键盘使用注意问题
- 解决手机訪问站点时总体相对屏幕缩小问题?(已解决)
- Android手机适配问题【autolayout】,【.9制作】【获取手机屏幕的宽高】【px,dp转换】
- J2ME学习笔记--实现手机屏幕的切换
- J2ME开发问题摘要一【N系列手机上使用FileSystemRegistry.listRoots()】