ImageLoader
配置ImageLoader
- 一般我们在使用ImageLoader的时候,需要在应用程序的入口进行它的一个配置,这个配置一般写到Application里边
*
public void initImageLoader() {
// 获取默认的路径
File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext());
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
// 设置内存图片的宽高
.memoryCacheExtraOptions(480, 800)
// default = device screen dimensions
// 缓存到磁盘中的图片宽高
.diskCacheExtraOptions(480, 800, null)
// .taskExecutor(null)
// .taskExecutorForCachedImages()
.threadPoolSize(3)
// default 线程优先级
.threadPriority(Thread.NORM_PRIORITY - 2)
// default
.tasksProcessingOrder(QueueProcessingType.FIFO)
// // default设置在内存中缓存图像的多种尺寸
//加载同一URL图片时,imageView从小变大时,从内存缓存中加载
.denyCacheImageMultipleSizesInMemory()
// 超过设定的缓存大小时,内存缓存的清除机制
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
// 内存的一个大小
.memoryCacheSize(2 * 1024 * 1024)
.memoryCacheSizePercentage(13)
// default 将图片信息缓存到该路径下
.diskCache(new UnlimitedDiskCache(cacheDir))
// default 磁盘缓存的大小
.diskCacheSize(50 * 1024 * 1024)
// 磁盘缓存文件的个数
.diskCacheFileCount(100)
//磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new Md5FileNameGenerator()源文件的名称同过md5加密后保存
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
// 设置默认的图片加载
.imageDownloader(
new BaseImageDownloader(getApplicationContext())) // default
// 使用默认的图片解析器
.imageDecoder(new BaseImageDecoder(true)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs().build();
ImageLoader.getInstance().init(config );
}
在使用图片加载的类中去配置这些资源,比如在Activity中进行配置
public void initOptions() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
// 设置图片在下载期间显示的图片
.showImageOnLoading(R.drawable.ic_launcher)
// 设置图片Uri为空或是错误的时候显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)
// 设置图片加载/解码过程中错误时候显示的图片
.showImageOnFail(R.drawable.ic_launcher)
// 设置下载的图片是否缓存在内存中
.cacheInMemory(true)
// 设置下载的图片是否缓存在SD卡中
.cacheOnDisc(true)
// 是否考虑JPEG图像EXIF参数(旋转,翻转)
.considerExifParams(true)
// 设置图片以如何的编码方式显示
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
// 设置图片的解码类型//
.bitmapConfig(Bitmap.Config.RGB_565)
// 设置图片的解码配置
// .decodingOptions(options)
// .delayBeforeLoading(int delayInMillis)//int
// delayInMillis为你设置的下载前的延迟时间
// 设置图片加入缓存前,对bitmap进行设置
// .preProcessor(BitmapProcessor preProcessor)
// 设置图片在下载前是否重置,复位
.resetViewBeforeLoading(true)
// 是否设置为圆角,弧度为多少
.displayer(new RoundedBitmapDisplayer(20))
// 是否图片加载好后渐入的动画时间
.displayer(new FadeInBitmapDisplayer(100))
// 构建完成
.build();
}
ImageLoader的使用
ImageLoader.getInstance().displayImage(imageUrl, imageView,options);
// imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options 代表DisplayImageOptions配置文件
清除缓存的方法
//完全退出程序时,可以不调用
ImageLoader.getInstance().clearDiskCache();//清除磁盘缓存
ImageLoader.getInstance().clearMemoryCache();//清除内存缓存
ImageLoader的更多相关文章
- android使用ImageLoader实现图片缓存(安卓开发必备)
相信大家在学习以及实际开发中基本都会与网络数据打交道,而这其中一个非常影响用户体验的就是图片的缓存了,若是没有弄好图片缓存,用户体验会大大下降,总会出现卡顿情况,而这个问题尤其容易出现在ListVie ...
- android ImageLoader 混淆加载drawable出现黑色图片的解决方案
在网上找了很久,没有找到.后来看了源码才知道... 多线程异步加载和显示图片(图片来源于网络.sd卡.assets文件夹,drawable文件夹(不能加载9patch),新增加载视频缩略图) Stri ...
- ImageLoader配合ImageSwitcher的使用
先在MyApplication中初始化ImageLoader initImageLoader(getApplicationContext()); /** * 初始化ImageLoader * 如果你经 ...
- ImageLoader加载图片
先导universal-image-loader-1.9.3包 在application配置 android:name=".MyApplication" intent权限 1 pa ...
- ImageLoader图片加载
http://blog.csdn.net/liu1164316159/article/details/38728259 转载请注明http://write.blog.csdn.net/po ...
- Android 三大图片加载框架的对比——ImageLoader,Picasso,Glide
一.ImageLaoder介绍 << Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹ass ...
- ImageLoader框架的使用、调用系统相册显示图片并裁剪显示、保存图片的两种方式
ImageLoader虽然说是一个相对于比较老的一个框架了 ,但是总的来说,还是比较好用的,今天我就总结了一下它的用法.还有调用系统相册并裁剪,以及,通过sharedpreference和文件存储来保 ...
- jsLoader、cssLoader、imageLoader
//js文件加载 function jsLoader(url,callback){ var script = document.createElement("script"); s ...
- 8.4.1 ImageLoader
ImageLoader 的工作原理(已经不维护了) 在显示图片的时候,它会先在内存中查找:如果没有,就去本地查找:如果还没有,就开一个新的线程去下载这张图片,下载成功会把图片同时缓存到内存和本地. 基 ...
随机推荐
- 2、HTML 基础知识
一.HTT(PHyper Text Markup Language)即超文本语言. 特点: 1.通过标签来定义的语言,代码都是由标签所组成 2.不区分大小写 3.由<html>开始< ...
- 用jsp的application写一个记录用户登陆网站的数量
</head><body><%int i = 0;Object number = application.getAttribute("num");if ...
- C# *= 运算顺序
a *= a + b *c; 不管等号右边有没有括号,总是先算右边: 即等价于 a = a *(a + b*c); using System; using System.Collections.Gen ...
- NOSDK--一键打包的实现(一)
所谓一键打包,包含五个流程: 刷新mk,这个只有在文件数目改变的时候才会需要: 编译,在实现了统一接入以后,只需要编译一次就可以打多个包,这个以后再介绍: 拷贝资源,这个使用的是cocos2d-x自带 ...
- Alpha版本十天冲刺——Day 10
站立式会议 最后一天,很高兴我们做出了跟预期差不多的版本,实现了基本功能,虽然还有一些bug,但是下一阶段我们会继续加油! 会议总结 队员 今天完成 遇到的问题 感想 鲍亮 功能细节更改 我的手机运行 ...
- C和指针 第七章 习题
7.1 hermite递归函数 int hermite(int n, int x) { if (n <= 0) { return 1; } if (n == 1) { return 2 * x; ...
- Segment set
题目大意: 在一个平面上,给定N根线段,若某条线段与另一条线段相交,则将它们归于同个集合,给定k,问第k条线段所在的集合中线段的数量. 题目分析: 问题主要考察计算几何和并查集. 首先我们要判断两条线 ...
- Qml 写的弹出层控件
QML弹出窗口组件,灯箱效果.动画效果,可拖拽 核心思路:一个mask层,一个最顶层,都用rectangle,禁止事件穿透 使用 Popup { id: popup width: 200; heigh ...
- 网页设计之jQuery
1.在html中引入css和jQuery <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- ACM/ICPC 之 最小割转网络流(POJ3469)
重点:构图 //最小割转网络流 //邻接表+Dinic //Time:5797Ms Memory:6192K #include<iostream> #include<cstring& ...