原文发表在
http://javaeye.5d6d.com/thread-133-1-1.html
一个经典的J2ME网络读取图片例子
为了推动本论坛的发展,获取更多的用户,所以小弟今天花了1个小时的时间来构建了一个网站的读取网络图片的例子,
里面的知识包括线程,HTTP,画布等
线程是为了解决读取网络图片过慢的时候,给用户友好的提示,以增强用户友好度
HTTP是从网络读取图片,并把资源转换成可视的图片展示给用户看。
画布的意图就更明显了。显示图片,看看代码,先看看图片吧
显示提示信息,图片下载中。
下载完毕后的图片
下面是源代码拿主要的来说
线程读取图片,读取策略是,转换byte为可视的Image,当Image构建出来后,重回画布
/********************************************************************
* 项目名称 :<b>j2me学习 J2me Wap Explorer</b> <br/>
*
* Copyright 2005-2006 Wuhua. All rights reserved </br>
*
* 本程序只用于学习目的,不能用于商业目的。如有需要请联系作者
********************************************************************/
package org.fox.image;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Image;
/**
* <b>类名:ImageHandler.java</b> </br> 编写日期: 2007-8-17 <br/> 程序功能描述: <br/> Demo:
* <br/> Bug: <br/>
*
* 程序变更日期 :<br/> 变更作者 :<br/> 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class ImageHandler implements Runnable {
private HttpConnection c = null;
private InputStream is = null;
private ByteArrayOutputStream baos = new ByteArrayOutputStream();
private Image image = null;
private String iamgeUrl;
private ImageCanvas imageCanvas;
private ImagePart imagePart;
private ImageHandler(String imageUrl,ImagePart imagePart,ImageCanvas imageCanvas){
this.iamgeUrl = imageUrl;
this.imagePart = (ImagePart)imagePart;
this.imageCanvas = imageCanvas;
new Thread(this).start();
}
public static ImageHandler getIamgeHandler(String imageUrl,
ImagePart imagePart,ImageCanvas imageCanvas){
return new ImageHandler(imageUrl,imagePart,imageCanvas);
}
/* 获得网络图片 */
public Image handlerIamge() throws Exception{
byte[] imageData = null;
try {
c = (HttpConnection) Connector.open(iamgeUrl);
is = c.openInputStream();
int ch = 0;
while ((ch = is.read()) != -1) {
baos.write(ch); // 读取网络图片
}
} catch (IOException ioe) {
throw new IOException("Connect Error");
}
imageData = baos.toByteArray(); // 把图片转换成字节
try {
image = Image.createImage(imageData, 0, imageData.length);
} catch (NullPointerException e) {
throw new NullPointerException("NullPointerException");
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("IllegalArgumentException");
}
return image;
}
public void run() {
try {
imagePart.setImage(handlerIamge());
imageCanvas.repaint();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最主要的就是这个类了,其他都是一些辅助的,具体可以参考源代码。
我这个工程是在Eclipse + EclipseMe开发的。
源代码在原文里面。到这里下载
http://javaeye.5d6d.com/thread-133-1-1.html
相关推荐
Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于开发移动设备、嵌入式系统的应用程序。本资源包含了大量的J2ME源代码和实例,这些例子旨在帮助开发者从基础到进阶全面理解J2ME编程。下面将详细阐述J2ME...
"PDAPDemo"项目可能是一个演示了上述功能的实际例子,它可能包含如何创建一个简单的通信录应用,添加、编辑和删除联系人,以及查看和管理手机上的文件和图片的代码。这个示例可能还展示了如何在J2ME环境中实现基本的...
1. **AddressBookMIDlet.java**:这是一个联系人管理应用的例子,它展示了如何在J2ME环境中实现数据存储和检索。MIDlet是J2ME应用程序的基础,由MIDlet类扩展。这个例子中,你将学习到如何使用Record Management ...
本文将深入探讨一个基于J2ME的文件浏览器例程——FilebrowserExample,这是一个在NetBeans集成开发环境中创建的例子,用于在移动设备上展示本地文件系统。 **一、J2ME基础知识** 1. ** MIDP (Mobile Information ...
以下是一个将图片转为byte数组的例子: ```java try { Image image = Image.createImage("/store0/images/myimage.png"); BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image....
《郭克华J2ME移动开发实战教学视频源代码》是一个专注于Java Micro Edition(J2ME)技术的教育资源,由知名讲师郭克华提供。J2ME是Java平台的一个子集,专门用于嵌入式设备和移动设备的开发,如早期的智能手机、功能...
Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于嵌入式设备和移动设备,如手机和智能手表。这些设备通常资源有限,因此J2ME提供了一个轻量级的框架来开发应用程序。这里我们将深入探讨J2ME中的文本...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写...
- **背景介绍**:J2ME(Java 2 Platform, Micro Edition)是Java平台的一个版本,专门用于移动设备、嵌入式设备和消费电子产品。 - **学习目标**:通过本章节的学习,了解J2ME的基本概念和发展历程,为后续深入学习...
总之,“j2me新手学习全套示例源代码”是一个全面的资源,通过它你可以系统地学习J2ME开发,从基础到进阶,一步步成为一名熟练的J2ME开发者。在实践中不断探索,理论结合实际,你会发现J2ME的世界充满了无限可能。
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
"BattleCityTank"就是一个以经典游戏《坦克大战》为蓝本,采用Java 2 Micro Edition(J2ME)技术开发的例子,对于初学者来说,它提供了宝贵的实践机会,帮助理解和掌握J2ME平台的编程技巧。 J2ME是Java平台上用于...
ejbCreate函数用于初始化一个EJB实例 EJB中JNDI的使用源码例子 EJB的真实世界模型(源代码).rar ftp文件传输 ftp简易服务器.rar HAHA CHAT Java仿QQ聊天程序源代码.rar html 标记大全.rar iCHAT聊天室基于Java.rar ...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
- **解析**: 在这个例子中,`fun1` 函数接受一个普通参数 `a`,一个普通参数 `b`,以及一个可变参数列表 `args`。 #### 10. 数据库筛选功能 - **知识点**: 在数据库中,用户可以通过筛选功能快速查找满足特定条件的...
实例74 实现一个简单的代理服务器 246 实例75 C/S结构的分布式运算 248 第7章 Java B/S结构编程 253 实例76 简单的Servlet程序 254 实例77 简单的留言簿 256 实例78 JSP+Java Bean的计数器 258 实例79 数据库查询 ...