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;
}
这里要说的是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;
}
相关文章推荐
- The 'mode' option has not been set以及Can't resolve './src'解决方法
- webpack 运行提示“The ‘mode‘ option has not been set”的原因和解决方法
- 使用FDFullscreenPopGesture遇到的坑以及解决方法
- 使用FDFullscreenPopGesture遇到的坑以及解决方法
- web.xml is missing and <failOnMissingWebXml> is set to true解决方法
- web.xml is missing and <failOnMissingWebXml> is set to true解决方法
- vs2005下出现“Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive”的解决方法
- pom.xml项目文件中出现web.xml is missing and <failOnMissingWebXml> is set to true解决方法
- Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 4171 异常的解决方法
- Android DialogFragment fullscreen 解决方法
- paint.setXfermode不起作用的解决方法
- web.xml is missing and <failOnMissingWebXml> is set to true解决方法
- (解决方法)c3p0、hibernate 连接sybase数据库无法设置连接选项 SET_READONLY_TRUE、SET_CATALOG
- Stuts2的"struts.devMode"设置成true后,不起作用的解决的方法
- web.xml is missing and <failOnMissingWebXml> is set to true解决方法
- maven 遇到failOnMissingWebXml有关问题解决方法:web.xml is missing and <failOnMissingWebXml> is set to true
- setContentView(R.layout.activity_main) Error解决方法
- ip_conntrack: table full, dropping packet 解决方法
- Ubuntu异常关机后无法启动图形界面,提示 Welcome to emergency mode...的解决方法
- 关于onDraw()方法不被执行的解决方法(setWillNotDraw(false))