Android-Universal-Image-Loader图片缓存

Android-Universal-Image-Loader框架图片的缓存


1,下载框架的github地址https://github.com/dodola/Android-Universal-Image-Loader

2,分析demo,把 universal-image-loader-1.8.4-with-sources.jar 导入项目

3,初始化(在Application中,或者在baseActivity中)

/**
		 * 实例化图片处理框架imageloder
		 */
		 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())  
         .threadPriority(Thread.NORM_PRIORITY - 2)  
         .denyCacheImageMultipleSizesInMemory()  
         .discCacheFileNameGenerator(new Md5FileNameGenerator())  
         .tasksProcessingOrder(QueueProcessingType.LIFO)  
         .enableLogging() // Not necessary in common  
         .discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory(), "karnetimg")))
         .build();  
		 ImageLoader.getInstance().init(config);

4,使用的时候(如:adapater中)

public DisplayImageOptions options;//图片配置
protected ImageLoader imageLoader = ImageLoader.getInstance();
//oncreate方法中配置参数
/**
		 * 配置图片设置
		 */
		options = new DisplayImageOptions.Builder()
		.showStubImage(R.drawable.iv_male)
		.showImageForEmptyUri(R.drawable.iv_male)
		.showImageOnFail(R.drawable.iv_male)
		.cacheInMemory()
		.cacheOnDisc()
		.displayer(new RoundedBitmapDisplayer(180))
		.build();
//getview中使用
user_img = (ImageView) view.findViewById(R.id.user_img);
imageLoader.displayImage(Urls.URL_HOST+listCarRouters.get(position).getUserImg().replace("/",""), user_img, options, null);
最后的参数是一个下载监听器,我这里为了方便传null

private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();

可以在监听其中设置下载开始->结束的动画操作

此框架很好用,对图片处理的逻辑非常缜密,想了解的请看源码。

主要逻辑是:

下载过程:首先拿url去判断内存和SD卡中有木有(内存中是单纯的url地址,SD卡中使用了hashcode转码)----->没有就开启线程下载----->缓存到SD卡

取图片过程:拿url去判断内存和SD中有没有---->没有则去网络下载

对于SD卡路径,要注意:设置SD卡保存的路径的要是SD卡的全路径,不能创建的路径,框架会判断使用默认的路径保存

看似简单的流程,框架中对其做了很详细的判断逻辑。

在此感谢发明家,和我一起4个小时的努力去分析这个框架,不得不说外国佬代码写的还是很不错滴!


我为自己写博客!!!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值