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

Android 异步加载图片的实现

 2010-08-21 06:17:00 来源:WEB开发网   
核心提示:前几天记得说要分享一下异步下载加载图片的经验,最近一直在研究Cocos2d,Android 异步加载图片的实现,把这事耽误了,今天就写了写如果不怕图片那个内存溢出的bug的话,如果担心这个问题,可以使用ImageView既然是异步加载,可以使用ListView,GridView等等

前几天记得说要分享一下异步下载加载图片的经验,最近一直在研究Cocos2d,把这事耽误了。今天就写了写

如果不怕图片那个内存溢出的bug的话。可以使用ListView,GridView等等,如果担心这个问题,可以使用ImageView

既然是异步加载,那就采用多线程下载吧。 这个例子里面也就用了一个线程池

1.

//初始化线程池

Java代码

ThreadPoolExecutor threadPool = new ThreadPoolExecutor(5, 10, 3,TimeUnit.SECONDS,new LinkedBlockingQueue());

ThreadPoolExecutor threadPool = new ThreadPoolExecutor(5, 10, 3,TimeUnit.SECONDS,new LinkedBlockingQueue());

2.

//构建一个ListView

Java代码

listView = (ListView) findViewById(R.id.listview);

listView = (ListView) findViewById(R.id.listview);

3.

//启动一个下载列表的线程

Java代码

threadPool.execute(new LoadImagesListThread());

threadPool.execute(new LoadImagesListThread());

4.

Java代码

/**

* 下载图片列表的线程

* @author zhu

*

*/

class LoadImagesListThread extends Thread{

@Override

public void run() {

//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);

}

}

}

/**

* 下载图片列表的线程

* @author zhu

*

*/

class LoadImagesListThread extends Thread{

@Override

public void run() {

1 2 3  下一页

Tags:Android 异步 加载

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