文档章节

universal-image-loader 配置

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:39
字数 680
阅读 27
收藏 0

/**
	 * 初始化ImageLoader
	 */
	public static void initImageLoader(Context context) {
		File cacheDir = StorageUtils.getOwnCacheDirectory(context,
				"bee_k77/Cache");// 获取到缓存的目录地址
		Log.e("cacheDir", cacheDir.getPath());
		// 创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数
		ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
				context)
				// max width, max height,即保存的每个缓存文件的最大长宽
				.memoryCacheExtraOptions(480, 800)
				// Can slow ImageLoader, use it carefully (Better don't use it)设置缓存的详细信息,最好不要设置这个
//				 .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) 
				// 线程池内加载的数量
				.threadPoolSize(3)
				// 线程优先级
				.threadPriority(Thread.NORM_PRIORITY - 2)
				/*
				 * When you display an image in a small ImageView
				 *  and later you try to display this image (from identical URI) in a larger ImageView 
				 *  so decoded image of bigger size will be cached in memory as a previous decoded image of smaller size.
				 *  So the default behavior is to allow to cache multiple sizes of one image in memory. 
				 *  You can deny it by calling this method: 
				 *  so when some image will be cached in memory then previous cached size of this image (if it exists)
				 *   will be removed from memory cache before.
				 */
//				.denyCacheImageMultipleSizesInMemory()
				
				// You can pass your own memory cache implementation你可以通过自己的内存缓存实现
				// .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) 
				// .memoryCacheSize(2 * 1024 * 1024)
				//硬盘缓存50MB
				.diskCacheSize(50 * 1024 * 1024)
				 //将保存的时候的URI名称用MD5
				.diskCacheFileNameGenerator(new Md5FileNameGenerator())
				// 加密
				 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密
				.tasksProcessingOrder(QueueProcessingType.LIFO)
				 .diskCacheFileCount(100) //缓存的File数量
				.diskCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径
				// .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
				// .imageDownloader(new BaseImageDownloader(context, 5 * 1000,
				// 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
				.writeDebugLogs() // Remove for release app
				.build();
		// Initialize ImageLoader with configuration.
		ImageLoader.getInstance().init(config);// 全局初始化此配置
	}

Option类

package com.topnews.config;

import android.graphics.Bitmap;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.topnews.R;

public class Options {
	/**
	 * 新闻列表中用到的图片加载配置
	 */
	public static DisplayImageOptions getListOptions() {
		DisplayImageOptions options = new DisplayImageOptions.Builder()
		// 设置图片在下载期间显示的图片
				.showImageOnLoading(R.drawable.ic_stub)
				// 设置图片Uri为空或是错误的时候显示的图片
				.showImageForEmptyUri(R.drawable.ic_stub)
				// 设置图片加载/解码过程中错误时候显示的图片
				.showImageOnFail(R.drawable.ic_error)
				// 设置下载的图片是否缓存在内存中
				.cacheInMemory(false)
				// 设置下载的图片是否缓存在SD卡中
				.cacheOnDisc(true)
				// 保留Exif信息
				.considerExifParams(true)
				// 设置图片以如何的编码方式显示
				.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
				// 设置图片的解码类型
				.bitmapConfig(Bitmap.Config.RGB_565)
				// .decodingOptions(android.graphics.BitmapFactory.Options
				// decodingOptions)//设置图片的解码配置
				.considerExifParams(true)
				// 设置图片下载前的延迟
				.delayBeforeLoading(100)// int
				// delayInMillis为你设置的延迟时间
				// 设置图片加入缓存前,对bitmap进行设置
				// .preProcessor(BitmapProcessor preProcessor)
				.resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
				// .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少
				.displayer(new FadeInBitmapDisplayer(100))// 淡入
				.build();
		return options;
	}
}


代码中队配置讲解的和详细,我就不多说了。有空要研究下源码。


本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/38100439

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
[原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

  最近,总算有时间去做些平时喜欢而没空去做的事情。一直觉得项目中使用的Image Loader适用性不强,昨晚在github随便逛逛,发现一个开源项目Android-Universal-Image-Loader十分火热。代码...

笨鸟不乖
2016/01/06
138
1
安卓图片加载框架--Universal-Image-Loader

  今天来介绍图片加载的框架Android-Universal-Image-Loader   GITHUB上的下载路径为:https://github.com/nostra13/Android-Universal-Image-Loader   也可以自行百度下载。   首先...

痞子姜
2015/09/18
0
0
Android 使用Universal Image Loader绘制带圆角的图片(一)

Android 使用Universal Image Loader绘制带圆角的图片(一) 绘制带圆角的控件难吗?貌似不难。对于一个普通layout或者widget,要绘制圆角,只要把 background设置成下面这样的drawable就行了...

yhchinabest
2015/07/20
4K
0
Android图片缓存(一)——universal-image-loader

图片三级缓存 一级:内存Cache 二级:磁盘Cache 存储目录:/packageName/cache/目录下 三级:网络 使用方法: 1、在应用Application类中配置 public static void initImageLoader(Context c...

亭子happy
2015/09/08
90
0
github上的NB Android项目

最近想捣鼓捣鼓Android,下了Oschina的android client source,看得挺舒服的,写得很清晰,受益匪浅,想再深入了解下,当然是接着看优秀开源项目咯。google到CSDN上的“直接拿来用,最火的A...

pengzai
2013/05/13
671
0

没有更多内容

加载失败,请刷新页面

加载更多

全球第一时间响应:Rancher发布2.3.1,支持K8S CVE修复版本

北京时间2019年10月17日,Kubernetes发布了新的补丁版本,修复了新近发现的两个安全漏洞:CVE-2019-11253和CVE-2019-16276。Rancher第一时间响应,就在当天紧随其后发布了Rancher v2.3.1和R...

RancherLabs
21分钟前
3
0
EMQ X 规则引擎系列 (八)桥接消息到 MQTT Broker

桥接概念 桥接是一种连接多个 EMQ X 或者其他 MQTT 消息中间件的方式。不同于集群,工作在桥接模式下的节点之间不会复制主题树和路由表。桥接模式所做的是: 按照规则把消息转发至桥接节点;...

EMQX
25分钟前
4
0
《2019年上半年云上企业安全指南》详解安全建设最易忽视的问题!

《2019年上半年云上企业安全指南》是阿里云基于对云安全中心监测到的威胁情报进行分析,形成的一份云上企业安全建设指南。通过对云上企业安全建设现状及多维度威胁情报的分析,得出企业安全建...

开源中国小二
25分钟前
4
0
一天之际在于晨之KMP算法

(我觉得不需要明白原理,应该是在面试或者工作的时候,该想到用什么算法以及之后直接赋值我这里的代码就好了) 下面的情况我们第一时间考虑想到的是用KMP算法。 情况一:// ts字符串是否包...

木九天
28分钟前
3
0
如何通过反射机制创建对象?

1. 什么是反射? Java 反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态的获取信息以及动态调用对...

happywe
28分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部