`
wuhua
  • 浏览: 2117457 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个经典的J2ME网络读取图片例子

阅读更多
原文发表在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



分享到:
评论

相关推荐

    J2ME大量源代码,例子

    Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于开发移动设备、嵌入式系统的应用程序。本资源包含了大量的J2ME源代码和实例,这些例子旨在帮助开发者从基础到进阶全面理解J2ME编程。下面将详细阐述J2ME...

    PDA.rar_PDA_j2me_j2me 图片_j2me 文件_j2me 通信

    "PDAPDemo"项目可能是一个演示了上述功能的实际例子,它可能包含如何创建一个简单的通信录应用,添加、编辑和删除联系人,以及查看和管理手机上的文件和图片的代码。这个示例可能还展示了如何在J2ME环境中实现基本的...

    Sun J2ME官方例程若干

    1. **AddressBookMIDlet.java**:这是一个联系人管理应用的例子,它展示了如何在J2ME环境中实现数据存储和检索。MIDlet是J2ME应用程序的基础,由MIDlet类扩展。这个例子中,你将学习到如何使用Record Management ...

    j2me文件浏览器例程

    本文将深入探讨一个基于J2ME的文件浏览器例程——FilebrowserExample,这是一个在NetBeans集成开发环境中创建的例子,用于在移动设备上展示本地文件系统。 **一、J2ME基础知识** 1. ** MIDP (Mobile Information ...

    j2me系统文件的操作(包括把图片byte化)

    以下是一个将图片转为byte数组的例子: ```java try { Image image = Image.createImage("/store0/images/myimage.png"); BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image....

    郭克华J2ME移动开发实战教学视频源代码

    《郭克华J2ME移动开发实战教学视频源代码》是一个专注于Java Micro Edition(J2ME)技术的教育资源,由知名讲师郭克华提供。J2ME是Java平台的一个子集,专门用于嵌入式设备和移动设备的开发,如早期的智能手机、功能...

    J2ME 初学者写的源代码 java 比较简单一点的几个J2ME初学者写的源代码,有关文本处理和图像处理方面的源码。

    Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于嵌入式设备和移动设备,如手机和智能手表。这些设备通常资源有限,因此J2ME提供了一个轻量级的框架来开发应用程序。这里我们将深入探讨J2ME中的文本...

    java源码包---java 源码 大量 实例

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax写...

    郭克华 J2ME 视频教程学习笔记(终稿)(密码:123456).pdf

    - **背景介绍**:J2ME(Java 2 Platform, Micro Edition)是Java平台的一个版本,专门用于移动设备、嵌入式设备和消费电子产品。 - **学习目标**:通过本章节的学习,了解J2ME的基本概念和发展历程,为后续深入学习...

    j2me新手学习全套示例源代码

    总之,“j2me新手学习全套示例源代码”是一个全面的资源,通过它你可以系统地学习J2ME开发,从基础到进阶,一步步成为一名熟练的J2ME开发者。在实践中不断探索,理论结合实际,你会发现J2ME的世界充满了无限可能。

    java源码包2

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax...

    java源码包3

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax...

    java源码包4

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    battlecitytank

    "BattleCityTank"就是一个以经典游戏《坦克大战》为蓝本,采用Java 2 Micro Edition(J2ME)技术开发的例子,对于初学者来说,它提供了宝贵的实践机会,帮助理解和掌握J2ME平台的编程技巧。 J2ME是Java平台上用于...

    Java源码包100个设计实例.zip

    ejbCreate函数用于初始化一个EJB实例 EJB中JNDI的使用源码例子 EJB的真实世界模型(源代码).rar ftp文件传输 ftp简易服务器.rar HAHA CHAT Java仿QQ聊天程序源代码.rar html 标记大全.rar iCHAT聊天室基于Java.rar ...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    2021-2022计算机二级等级考试试题及答案No.10213.docx

    - **解析**: 在这个例子中,`fun1` 函数接受一个普通参数 `a`,一个普通参数 `b`,以及一个可变参数列表 `args`。 #### 10. 数据库筛选功能 - **知识点**: 在数据库中,用户可以通过筛选功能快速查找满足特定条件的...

    h_JAVA 2应用编程150例.rar

    实例74 实现一个简单的代理服务器 246 实例75 C/S结构的分布式运算 248 第7章 Java B/S结构编程 253 实例76 简单的Servlet程序 254 实例77 简单的留言簿 256 实例78 JSP+Java Bean的计数器 258 实例79 数据库查询 ...

Global site tag (gtag.js) - Google Analytics