日期:2014-05-20  浏览次数:20817 次

真机图片显示问题啊

从网络上下载的图片   在真机上显示不了(机子为6300)       而GPGS   一直在跑   不知道什么原因啊?   请大家帮忙啊

代码如下:
    HttpConnection     h=   (HttpConnection)Connector.open(URL);
                  DataInputStream   dis   =   null;
                  dis   =   h.openDataInputStream();
  ByteArrayOutputStream   dos   =   null;
                  int   ch   =   (int)   h.getLength();
byte   png[]   =   null;
if   (ch   !=   -1)   {
png   =   new   byte[ch];
dis.readFully(png);
}   else   {                                          
dos   =   new   ByteArrayOutputStream();
int   hh;
while   ((hh   =   dis.read())   !=   -1)   {
dos.write(hh);
}
png   =   dos.toByteArray();
}
                                      image=Image.createImage(png,   0,   png.length);
                                      repaint();
              }
            catch(IOException   ioe)
                  {  
                    System.out.println(ioe);
                  }
                catch(Exception   e)
                {
                    System.out.println(e);
                }

------解决方案--------------------
看具体报什么异常
------解决方案--------------------
你 返回的是移动的资费提示wml 文件吧
你把它当png来解析,当然是非法参数异常了
------解决方案--------------------
你确定你的资源是png吗?很多手机不支持其他格式图片的,比如jpg等。
------解决方案--------------------
//MainMidlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MainMidlet extends MIDlet {
private static MainMidlet instance;
private Displayable nowScreen;
private Display display;

public MainMidlet() {
instance = this;
nowScreen = new CanvasTest();
}

public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(nowScreen);
}

public void pauseApp() {
nowScreen = display.getCurrent();
}

public void destroyApp(boolean unconditional) {
}

public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}

-----------------------------------------