最近在用j2me平台开发Java移动应用,载入图片的时候总是出现下面这样莫名其妙的问题
源代码:
try{
//load image to sprite
Image image = Image.createImage(getClass().getResourceAsStream("/transparent.png"));
sprite = new Sprite(image,50,50);
Image imageTemp = Image.createImage("/nontransparent.png");
nontransparentsprite = new Sprite(imageTemp,50,50);
}catch(Exception ex){
ex.printStackTrace();
System.out.println("/n error!");
}
报错问题:
java.lang.IllegalArgumentException
at javax.microedition.lcdui.game.Sprite.<init>(+41)
at ExampleGameCanvas.<init>(+74)
at ExampleGameCanvasMidlet.startApp(+15)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)
折腾了好久,终于在论坛上(http://topic.youkuaiyun.com/u/20080317/23/812e55a6-5139-4f94-a5de-07e7462c9ff5.html 特此感谢!)找到了解决方案。其实就是new Sprite(image,50,50);这句参数错误,因为我的图片是48x48的,而50不能被48整除故出现参数错误。
我试着改成new Sprite(image,48,48);或者new Sprite(image,16,16);异常得以解决。
希望对碰到这个问题的朋友有所帮助.