Android 异步加载图片的实现
2010-08-21 06:17:00 来源:WEB开发网前几天记得说要分享一下异步下载加载图片的经验,最近一直在研究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() {
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接