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 = 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",
更多精彩
赞助商链接