WEB开发网
开发学院手机开发Android 开发 Android 异步加载图片的实现 阅读

Android 异步加载图片的实现

 2010-08-21 06:17:00 来源:WEB开发网   
核心提示://TODO 获取下载图片列表的datas = HttpUtils.LoadImagesList();if(datas != null && datas.size()>0){//通知显示列表handler.sendEmptyMessage(SHOW_IMAGES);//循环启动线程下载图片for (int i =

//TODO 获取下载图片列表的

datas = HttpUtils.LoadImagesList();

if(datas != null && datas.size()>0){

//通知显示列表

handler.sendEmptyMessage(SHOW_IMAGES);

//循环启动线程下载图片

for (int i = 0; i < datas.size(); i++) {

threadPool.execute(new LoadImageThread());

}

}else{

//TODO 通知没有数据

handler.sendEmptyMessage(NO_IMAGES);

}

}

}

5.

下载图片的线程如下,很简单

Java代码

class LoadImageThread extends Thread{

int position;

public LoadImageThread(int position){

this.position = position;

}

@Override

public void run() {

//TODO 下载图片。这个下载方法里面可以先判断是否本地缓存有,如果有,就读缓存。没有就下载,再写缓存

datas.get(position).bitmap = HttpUtils.loadImage(datas.get(position).url);

handler.sendEmptyMessage(SHOW_IMAGE);

}

}

class LoadImageThread extends Thread{

int position;

public LoadImageThread(int position){

this.position = position;

}

@Override

public void run() {

//TODO 下载图片。这个下载方法里面可以先判断是否本地缓存有,如果有,就读缓存。没有就下载,再写缓存

datas.get(position).bitmap = HttpUtils.loadImage(datas.get(position).url);

handler.sendEmptyMessage(SHOW_IMAGE);

}

}

6.

handler里面主要做些刷新的工作

Java代码

Handler handler = new Handler(){

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case SHOW_IMAGES:

adapter = new MyAdapter();

listView.setAdapter(adapter);

break;

case NO_IMAGES:

Toast.makeText(MainActivity.this, "no images",

Tags:Android 异步 加载

编辑录入:coldstar [复制链接] [打 印]
赞助商链接