读书人

真机图片显示有关问题啊

发布时间: 2011-12-01 22:07:01 作者: rapoo

真机图片显示问题啊

从网络上下载的图片 在真机上显示不了(机子为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;
}
}

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



//CanvasTest.java
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;

public class CanvasTest extends Canvas implements CommandListener {
private Image image;
private String url = "http://neoimaging.beareyes.com.cn/png/ni_png_0007.png ";

public CanvasTest() {
try {
HttpConnection http = (HttpConnection)Connector.open(url);
InputStream is = http.openInputStream();
image = Image.createImage(is);
} catch (IOException ex) {
ex.printStackTrace();
}
addCommand(new Command( "退出 ", Command.EXIT, 1));
setCommandListener(this);
}

public void commandAction(Command _command, Displayable _displayable) {
if (_command.getCommandType() == Command.EXIT) {
MainMidlet.quitApp();
}
}

protected void paint(Graphics g) {
//缓冲清屏
g.setColor(0x00FFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());

//开始画
if(image != null) {
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
[解决办法]
用JB打包,在真机上就可以读网络图片了?代码没修改?

读书人网 >J2ME开发

热点推荐