android图片缓存框架Android-Universal-Image-Loader
http://blog.csdn.net/king_is_everyone/article/details/34107081
最近跟同学们做了一个创业项目,其实跟以前做项目不同,以前大多数都是做web网站,对内存管理这些不太关注,因为是pc机,做android的话也就是一些小列子,现在到了做产品阶段吧,只能把项目做到最优。不扯了,先来说这个框架是做什么的,Android-Universal-Image-Loader主要是一个图片的缓存框架,根据官方解释就是,它提供了一个异步处理图片的方案。它提供两种获取图片方式async or sync,并且提供了一个可定制化的组件(thread executors, downloader, decoder, memory and disk cache, display image options, etc),它会把图片首先缓存到本地,然后在从本地进行读取这些图片,
这是官方使用的效果图
先来说说怎么使用它:首先在github上面下载Android-Universal-Image-Loader,加入到你的android项目里面,然后记得一定要加上这两个权限,否则这个缓存框架是不能够使用的
- <manifest>
- <uses-permission android:name="android.permission.INTERNET" />
- <!-- Include next permission if you want to allow UIL to cache images on SD card -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- ...
- <application android:name="MyApplication">
- ...
- </application>
- </manifest>
然后在代码里对该缓存框架进行配置,之所以说它是一个很灵活的东西,是因为它里面的大多数参数都可以手动配置,组件通用化程度高,几乎不需要进行复写。
这是我大概根据官方文档翻译的一些配置,其实对于大家来说,用默认的即可,除非是有特殊要求。
先开始使用的第一步:
配置ImageLoaderConfiguration这个类实现全局ImageLoader
- ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
- activity)
- .memoryCacheExtraOptions(640, 480)
- // 保存每个缓存图片的最大长和宽
- .threadPoolSize(3)
- // 线程池的大小 这个其实默认就是3
- .memoryCacheSize(2 * 1024)
- // 设置缓存的最大字节
- .denyCacheImageMultipleSizesInMemory()
- // 缓存显示不同大小的同一张图片
- .imageDownloader(
- new BaseImageDownloader(activity, 5 * 1000, 30 * 1000)) // connectTimeout
- // s)超时时间
- .build();
- ImageLoader imageLoader = ImageLoader.getInstance();
- imageLoader.init(config);
这是我大概需要的一些参数配置。
第二步
配置一些图片选项
- DisplayImageOptions options;
- options = new DisplayImageOptions.Builder()
- .showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
- .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
- .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
- .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
- .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
- .displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间
- .build();
这是大概的一个配置状况,在下一篇会用一个listView的实例来讲解这个框架的具体使用
android图片缓存框架Android-Universal-Image-Loader的更多相关文章
- Android图片缓存框架Glide
Android图片缓存框架Glide Glide是Google提供的一个组件.它具有获取.解码和展示视频剧照.图片.动画等功能.它提供了灵活的API,帮助开发者将Glide应用在几乎任何网络协议栈中. ...
- android图片缓存框架Android-Universal-Image-Loader(二)
http://blog.csdn.net/king_is_everyone/article/details/35595515 这篇打算直接告诉大家怎么用吧,其实这个也不是很难的框架,大致使用过程如下: ...
- Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- Android图片缓存之Bitmap详解
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓 ...
- 安卓高级 Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- Android图片载入框架最全解析(一),Glide的基本使用方法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439 本文同步发表于我的微信公众号.扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android图片缓存之初识Glide(三)
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- Android图片缓存之Bitmap详解(一)
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. Bitmap: Bitmap是Android ...
- Android图片缓存之Lru算法
前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小.我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发 ...
随机推荐
- hdoj 2191(多重背包)
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/ ...
- eclipse中show whitespace characters显示代码空格,TAB,回车 导致代码乱恶心
Eclipse中show whitespace characters显示回车.空格符. 取消此功能的第二种方式:
- underscorejs-size学习
2.24 size 2.24.1 语法: _.size(list) 2.24.2 说明: 返回列表的长度. 示例一:返回数组.对象.字符串的长度 //取数组的长度 var length length ...
- TortoiseSVN显示图标不正常
Windows Explorer Shell支持的Overlay Icon最多15个,除去系统使用,只有11个.如果其他程序占用了,那么乌龟SVN就无法显示了.注册表定位到:HKEY_LOCAL_MA ...
- MySQL中删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...
- github 中redisPhpAdmin redis 可视化界面
GITHUB地址:https://github.com/ErikDubbelboer/phpRedisAdmin 在php目录下执行 git clone https://github.com/Erik ...
- Ombrophobic Bovines
poj2391:http://poj.org/problem?id=2391 题意:一个人有n个农场,每个农场都一个避雨的地方,每个农场有一些牛,每个避雨的地方能容纳牛的数量是有限的.农场之间有一些道 ...
- Rabbit hunt
poj2606:http://poj.org/problem?id=2606 给你n个点,求在一条直线上的点最多有几个.题解:直接暴力,但是要注意,横坐标相等的情况,这是不能求斜力,只能特殊处理. # ...
- Keil MDK入门---从新建一个工程开始
熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例, ...
- Content related to smartcards (and RFID/NFC)
Introduction Add your content here. ISO/IEC 7816 Contact Cards Hardware EMV payment cards Orange Cas ...