Android-Universal-Image-Loader异步加载图片框架学习研究

.threadPriority(Thread.NORM_PRIORITY - 2)// 设置线程的优先级

.denyCacheImageMultipleSizesInMemory()// 当同一个Uri获取不同大小的图片,缓存到内存时,只缓存一个。默认会缓存多个不同的大小的相同图片

.discCacheFileNameGenerator(new Md5FileNameGenerator())// 设置缓存文件的名字

.discCacheFileCount(60)// 缓存文件的最大个数

.tasksProcessingOrder(QueueProcessingType.LIFO)// 设置图片下载和显示的工作队列排序

.build();

// Initialize ImageLoader with configuration

ImageLoader.getInstance().init(config);

3、创建图片显示选项:DisplayImageOptions options(根据不同的加载图片显示不同而构造不同的选项,主要配置图片加载过程中显示配置,缓存,显示动画);

DisplayImageOptions options;

options = new DisplayImageOptions.Builder()

.showStubImage(R.drawable.ic_launcher)// 设置图片在下载期间显示的图片

.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片

.showImageOnFail(R.drawable.ic_launcher)// 设置图片加载/解码过程中错误时候显示的图片

.cacheInMemory(true)// 是否緩存都內存中

.cacheOnDisc(true)// 是否緩存到sd卡上

.displayer(new RoundedBitmapDisplayer(20)).build();

4、通过ImageLoader显示图片

// ImageLoader

ImageLoader imageLoader = ImageLoader.getInstance();

// 第一个参数是uri,第二个参数是显示图片的imageView,第三个参数是刚刚构造的图片显示选项,第四个参数是加载的回调方法,displayImage有很多重载方法这中介其中一种;

imageLoader.displayImage(imageUrls[position], holder.image, options, loadingListener)

要学习更详细使用方法,官方的demo直接在上面链接里面有下载;

嘿嘿,开始觉得上面这用法看起来是有点多,且感觉有点麻烦,但仔细研究你会发现它的功能之强大,从设置加载线程优先级别、图片缓存、图片显示包括显示动画等都在考虑在其中,它还有非常好的扩展性,用户可以根据需求配置各种不同的显示效果、加载动画等,综合来看设计是很巧妙的,下面来体会一下这个开源框架的强大设计:

----------------------------------------------分割线------------------------------------------------------------------------

框架特点:

1、多线程的图像加载(线程池的大小,HTTP选项纱、线程控件等);

2、能够很好的监听加载过程;

3、图片显示配置接口(动画,圆角可扩展);

4、内存和磁盘高速缓存;

5、扩展性强,研发人员只需要根据需求实现它提供的各种接口即可;

框架里面使用最多的是建造者模式与策略模式,要从整个包结构开始看起才能更好的熟悉框架设计,才能更好的扩展它使之与自己工程融为一体;

看图,下图为整个开源框架的包结构:

啧啧,这里就不详叙了,框架里面命名很透彻,基本见名知意,它总共分为几大模块:

1、缓存模块;

下图为缓存模块包结构图:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值