Android Imageloader图片异步加载
更新时间:2023-09-30 02:37:01 阅读量: 综合文库 文档下载
Android Imageloader图片异步加载
Imageloader是一个在android平台下简单的下载、显示、缓存空间的图片加载库.
异步下载网络图片并可以在UI线程更新View,使用二级缓存控制即内存缓存、本地SD卡缓存.
重要更新:
1.5.8-SNAPSHOT
添加加载图片的动画效果 1.5.7
ImageTagFactory使用工厂方法实现更加方便测试.
本次升级请使用ImageTagFactory.getInstance代替new ImageFactory().
添加图片加载过程中的回调接口,更多的方法请参考
SettingsBuilder 添加
修改大量图片展示过程中滚动的一些问题 当URL为null的时候添加错误图片
Fix for loading images behind redirects (max 3)
1.5.6
clean up不需要在manifest中注册service,所有的操作在
BasicFileManager的线程中完成. 1.5.5
修改bug
添加直接加载图片的DirectLoader(不能在主线程使用)
1.5.2
更多文档请关注wyu’s blog http://wyu.me
缓存中添加预览图支持,可以从缓存中获取大图的预览图 1.5.1
使用多并发的加载
参考Android SDK guidelines修改SDCARD中的缓存文
件目录
使用LruBitmapCache
Imageloader library使用
从Demo开始相对好点.
具体步骤:
1. in the application class
添加下列代码初始化Imageloader,SettingsBuilder中提供设置
缓存和网络连接的能力. @Override
public void onCreate() { super.onCreate();
LoaderSettings settings = new SettingsBuilder() .withDisconnectOnEveryCall(true).build(this); imageManager = new ImageManager(this, settings); }
public static final ImageManagergetImageManager() { returnimageManager; }
lru缓存设置选项 默认的缓存使用软引用,但是由于系统的内存管理机制、空间限制可能经常被回收掉,限制缓存的性能,lru缓存解决了这个问题,如果你的应用中需要展示很多的小图片建议使用.
settings = new SettingsBuilder()
.withCacheManager(new LruBitmapCache(this)).build(this); thumbnailImageLoader = new ImageManager(this, settings);
更多文档请关注wyu’s blog http://wyu.me
LruBitmapCache默认使用%的内存缓存也可以从构造函数中自行配置 int PERCENTAGE_OF_CACHE = 50; settings = new SettingsBuilder()
.withCacheManager(new LruBitmapCache(this, PERCENTAGE_OF_CACHE)).build(this);
thumbnailImageLoader = new ImageManager(this, settings);
其他设置
Imageloader使用UrlConnection获取图片,两个重要的请求的参数
需要配置一下connectionTimeout&readTimeout
SettingsBuilder builder = new SettingsBuilder();
Settings settings = builder.withConnectionTimeout(20000) .withReadTimeout(30000).build(this);
连接超时的时间是初始化连接的时间 读取超时是说已经建立连接获取数据的时间
在Acitivty,fragment或Adapter中使用
如果想在imageview中加载图片只需要调用的Application的静态方法获得Imageloader再调用其中的load方法 下面的代码是Imageview是一个tag的时候的加载过程
ImageTagFactoryimageTagFactory = new ImageTagFactory(this, R.drawable.bg_img_loading);
imageTagFactory.setErrorImageId(R.drawable.bg_img_notfound);
privateViewBindergetViewBinder() { return new ViewBinder() { @Override
publicbooleansetViewValue(View view, Cursor cursor, intcolumnIndex) {
// Build image tag with remote image URL ImageTag tag =
imageTagFactory.build(cursor.getString(columnIndex));
更多文档请关注wyu’s blog http://wyu.me
((ImageView) view).setTag(tag); imageLoader.load(view); return true; } }; }
使用ImageTagFactory
配置图片的显示的大小同时开始显示原
图.Imageloader将依次从内存缓存,sdcard,网络获取 清空SDCARD缓存
如果需要清空SDCARD缓存调用
imageManager.getFileManager().clean();
Imageloader的初始化过程中可以使用settings builder配置缓存的过期
时间(默认时间为7天)
In the Androidmanifest.xml
主要是声明两件事情:权限和注册清空缓存的service(从1.5.6以后清空sdcard缓存的service不是必须的了)
android:name=\ android:name=\ 更多文档请关注wyu’s blog http://wyu.me 缓存预览图片(可选项) 缓存预览图片的这个东西主要是考虑有比较多的图片的时候展示,先加载小兔再加载大图.预览图也可以缓存. 在图片加载之前配置image tag 或配置ImageTagFactory // Image tag after normal settings imageTag.setPreviewHeight(100); imageTag.setPreviewHeight(100); imageTag.setPreviewUrl(previewUrl); imageView.setTag(imageTag); getImageManager().getLoader().load(imageView); // If small and large image have same URL, configure with the ImageTagFactory imageTagFactory = new ImageTagFactory(this, R.drawable.loading); imageTagFactory.setErrorImageId(R.drawable.image_not_found); imageTagFactory.usePreviewImage(THUMB_IMAGE_SIZE, THUMB_IMAGE_SIZE, true); // On bind ImageViewimageView = (ImageView) view; String url = cursor.getString(columnIndex); imageView.setTag(imageTagFactory.build(url)); MyApplication.getImageManager().getLoader().load(imageView); DirectLoader ImageLoader提供直接通过url下载的图片的工具类,调用该方法请使用非UI线程 Bitmap myImage = new DirectLoader().download(url); 如果没有找到图片改方法会抛出ImageNotFoundException 添加一个动画 这是动画显示 ImageTagFactoryimageTagFactory = new ImageTagFactory(this, R.drawable.bg_img_loading); imageTagFactory.setErrorImageId(R.drawable.bg_img_notfound); 更多文档请关注wyu’s blog http://wyu.me Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_in); imageTagFactory.setAnimation(fadeInAnimation); 获取Imageloader library的途径: 使用maven 需要在你的pom文件中配置 可以直接引入工程方便使用最新的版本 http://search.maven.org/remotecontent?filepath=com/novoda/imageloader/imageloader-core/1.5.6/imageloader-core-1.5.6.jar 项目结构: core:maven上的java工程 demo:Android的测试项目 acceptance:添加了Robotium的内部测试工程 使用maven构建工程 mvn clean install IntelliJ 当一个mavenpeoject导入进去 项目地址:https://github.com/novoda/ImageLoader 更多文档请关注wyu’s blog http://wyu.me
正在阅读:
Android Imageloader图片异步加载09-30
《论语》读后感800字精选5篇03-24
2462+建筑工程估价机考期末复习2016070110-24
边城500字读后感范本参考03-25
高中生《红与黑》读后感2022年03-25
小说《穆斯林的葬礼》读后感2022年03-25
书籍《名人传》读后感2022年03-25
《城南旧事》800字读后感2022年03-24
书籍《当下的力量》读后感2022年03-25
《谁拿走了孩子的幸福》读后感04-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 异步
- Imageloader
- 加载
- Android
- 图片
- 管理信息系统试题及答案三套
- 绿色住宅建筑综合评价问卷调查(终稿03word) - 图文
- 博弈论基础复习-11 -
- 浅析网络背景下的民粹主义 - 图文
- GMP审计指南(ICHQ7A)2006.3.20
- 死婴、胎盘处理流程 Microsoft Word 文档
- 某信用社银行结算账户自查报告
- 试论自媒体时代网络舆情的治理
- 南京地铁七号线技术标工程施工总承包 - 图文
- 七年级数学上册3.4.1整式的加减教案新版北师大版
- 科普知识进社区专题活动试题及答案(214)
- java期中考试试卷
- 贵州大学SRT项目申请
- 人教版高中语文必修四情景式默写
- 微积分题型总结
- 《精神卫生法》及相关知识竞赛题目参考答案
- 333教育综合 外国教育史复习资料
- 会计基础班实操全套模拟习题解析
- 五升六 综合练习 第18课时
- Unit 1-3复习