各种兼容手机在开发j2me-MIDlet程序时,程序员应当知道的一些问题

作者:雷神
QQ:     38929568
QQ群:28048051(满) 28047782(将满)

项目中总结出来的一些不太容易发现,却影响程序开发的一些小经验,如果你正好遇到这些问题了,那就不用
再找原因了!

1.LENOVO--V800,CPU速度比一般手机慢5倍左右!

2.LG,C1100兼容手机,在读文件时候,文件不宜过大,否则读取失败!

3.LG,KP202兼容手机,在单Player播放声音时候,如果出现死机,请查看停止播放声音代码,参考如下修改!

  
  
  
  
  1. public static void StopSound()  
  2.     ...{  
  3.  
  4.         try 
  5.         ...{  
  6.             if( player== null )  
  7.                 return;  
  8.             else 
  9.             ...{  
  10.                 player.deallocate();     //增加次函数  
  11.                 player.close();  
  12.                 player = null;  
  13.             }  
  14.         }  
  15.         catch ( Exception e ) ...{ e.printStackTrace(); }  
  16.     } 

4.LG C1100手机按键,在全屏幕加command可以实现左右软件动作,但需要在JAD描述中增加一项
MIDletX-No-Command: true

5.LG CG225手机按键,在全屏幕加command可以实现左右软件动作,但需要在JAD描述中增加一项
MIDletX-No-Command: true
同时需要注意,他的左右软件动作与B2100(C1100的兼容手机)是相反的!

6.LG KG220手机的按键,在全屏模式下就可以得到左右软件动作,不需要加COMMAND,所以在这一定上,他不与C1100兼容。

7.在单Player播放声音时候不需要stop()这个函数,一般都是先close()掉这个Player,然后再需要播放前new出一个新的,也就是先释放在生成!参考代码

  
  
  
  
  1. public static void PlaySoundLoop(int id, int loop)  
  2.     ...{  
  3.            StopSound(); // stop last midi  
  4.         try   
  5.         ...{  
  6.             InputStream is = new ByteArrayInputStream( s_soundData[id] );  
  7.             s_sound = javax.microedition.media.Manager.createPlayer(is, "audio/midi");  
  8.             s_sound.realize();  
  9.             s_sound.setLoopCount( loop );  
  10.             s_sound.start();  
  11.             s_curSoundId = id;  
  12.         }  
  13.         catch (Exception e) ...{ e.printStackTrace(); }  
  14.     } 

8.从一张大图片上按一定规律截取小图,小图本来应该透明的地方,被白色添充了。
简单的解决办法,可以使用小图单独生成。参考代码如下:

  
  
  
  
  1. try 
  2.         ...{  
  3.             forint i=0; i<img.length; i++ )  
  4.             ...{  
  5.                 img[i]         =  Image.createImage("/pics/"+name+"_"+i+".png");  
  6.             }  
  7. //            Image temp     = Image.createImage("/pics/"+name+".png");  
  8. //            form        = temp.getWidth()/w;  
  9. //            img            = new Image[form];  
  10. //            Graphics gn;  
  11. //            for( int i=0; i<img.length; i++ )  
  12. //            {  
  13. //                img[i]         = Image.createImage(w, h);  
  14. //                gn             = img[i].getGraphics();      
  15. //                gn.drawImage(temp, -i*w, 0, gn.LEFT|gn.TOP);  
  16. //            }  
  17. //            gn     = null;  
  18. //            temp = null;      
  19. //            System.gc();  
  20.         }catch(Exception e)...{ e.printStackTrace(); }     

未完待续! 不断更新中...

你可能感兴趣的:(问题,开发,移动开发,兼容手机,j2me-MIDlet)