android图片加载库的使用对比
1.Android-Universal-Image-Loader
giehub地址::https://github.com/nostra13/Android-Universal-Image-Loader这个框架是我最早使用的一款老牌框架,至今仍有许多开发者在用,不过该项目已经不再继续维护了,所以在此不推荐使用
使用方法:在自定义的application里进行配置,可参考以下代码:
//创建默认的ImageLoader配置参数ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(600, 600)// max width, max height,即保存的每个缓存文件的最大长宽.threadPoolSize(3)// 线程池内加载的数量.threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory().memoryCache(new WeakMemoryCache()) // 弱缓存,缓存bitmap的总大小没有限制,唯一不足的地方就是不稳定,缓存的图片容易被回收掉
// .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))//建议内存设在5-10M,可以有比较好的表现// You can pass your own memory cache// implementation/你可以通过自己的内存缓存实现.memoryCacheSize(2 * 1024 * 1024).discCacheSize(50 * 1024 * 1024).discCacheFileNameGenerator(new Md5FileNameGenerator())// 将保存的时候的URI名称用MD5 加密.tasksProcessingOrder(QueueProcessingType.LIFO).discCacheFileCount(100)// 缓存的文件数量.discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory()+ "/Westwinglife/imgCache")))// 自定义缓存路径.defaultDisplayImageOptions(getDisplayOptions()).imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)).writeDebugLogs() // Remove for release app.build();// 开始构建ImageLoader.getInstance().init(config);
options的配置可全局配置,也可对具体加载项单独配置,具体代码可参考:
public DisplayImageOptions getDisplayOptions() {DisplayImageOptions options;options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.defult_good_img) // 设置图片在下载期间显示的图片.showImageForEmptyUri(R.drawable.defult_good_img)// 设置图片Uri为空或是错误的时候显示的图片.showImageOnFail(R.drawable.defult_good_img) // 设置图片加载/解码过程中错误时候显示的图片.cacheInMemory(true)// 设置下载的图片是否缓存在内存中.cacheOnDisc(true)// 设置下载的图片是否缓存在SD卡中.considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转).imageScaleType(ImageScaleType.IN_SAMPLE_INT)// 设置图片以如何的编码方式显示
// .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//// .delayBeforeLoading(int delayInMillis)//int// delayInMillis为你设置的下载前的延迟时间// 设置图片加入缓存前,对bitmap进行设置// .preProcessor(BitmapProcessor preProcessor).resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位.displayer(new RoundedBitmapDisplayer(20))// 是否设置为圆角,弧度为多少.displayer(new FadeInBitmapDisplayer(100)) // 是否图片加载好后渐入的动画时间.build();// 构建完成return options;}
这样配置完成之后就可以在项目中使用了, imageLoader.displayImage方法简单易用,第一次使用的时候感觉非常棒,单例模式,三级缓存,各种状态 图片的配置显示.配置好的话还可以避免很多oom的问题
2.Picasso
giehub地址:https://github.com/square/picassopicasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实
现图片的异步加载:
dependencies { compile 'com.squareup.picasso:picasso:2.5.1'
}
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
这也是一款老牌的图片加载库,不过和UIL生在同一时期光芒必定会被有所遮盖,不过随着UIL的停止维护,Picasso的
光芒也将绽放
3.Glide
dependencies { compile 'com.github.bumptech.glide:glide:3.5.2' compile 'com.android.support:support-v4:22.0.0'
}
Glide.with(context) .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg") .into(ivImg);
4.Fresco
giehub地址:https://github.com/facebook/fresco
android图片加载库的使用对比相关推荐
- fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)
[Android开发经验]FaceBook推出的Android图片加载库-Fresco 欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件架构 ...
- Android常用图片加载库介绍及对比
前言 图片加载在 Android开发项目中是必不可少的,为了降低开发周期和难度,我们经常会选用一些图片加载的开源库,而Android发展到现在图片加载开源库也越来越多了,下面介绍几种开发中主流的图片加 ...
- android 图片加载库 Glide 的使用介绍
一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...
- android图片加载库Glide
什么是Glide? Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide ...
- Android图片加载库:最全面解析Glide用法
目录 1. 简介 介绍:Glide,是Android中一个图片加载开源库 Google的开源项目 主要作用:实现图片加载 2. 功能特点 2.1 功能列表 从上面可以看出,Glide不仅实现了图片异步 ...
- Android图片加载库的封装实战
重磅更新 2017-02-16 2017-05-09 优化圆形图片加载 更新demo 前言 主流图片加载库的对比 Android-Universal-Image-Loader Picasso Glid ...
- 谷歌推荐的Android图片加载库(Glide)介绍
本文出自:http://blog.csdn.net/u011733020 原 文:https://inthecheesefactory.com/blog/get-to-know-glide- ...
- Android图片加载库—Picasso一个强大的图像下载和缓存库
介绍 GitHub源码 点击查看 Picasso是一款强大的图片下载和缓存开源软件,只能在Android平台上使用,由Square开发.使用Picasso可以添加一些必须的特性和视觉效果到Androi ...
- FaceBook推出的Android图片加载库-Fresco
源文件:http://www.mamicode.com/info-detail-544084.html 在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像 ...
最新文章
- 物联网11种通信协议
- Jvm(4),保持线程可见性的几种方法
- [JS]视频总结-第三部分_深入javascript
- python get请求 url传参_用Python-get方法向页面发起请求,参数传不进去是怎么回事...
- hive开启kerberos-beeline连接
- 业务流程图6个图例_系统流程图用什么软件做?流程图绘制全教程
- linux上chrome、vlc等程序root不能运行的解决办法
- 数学建模1:lingo软件求解优化模型
- mike21换成计算机名称,MIKE 21
- 2022高压电工操作证考试题库及模拟考试
- 贴片电阻、贴片电容规格、封装、尺寸
- 基本遗传算法(GA)详解
- 一代人终将老去,但总有人正年轻
- 苹果手机如何找回id密码_苹果手机丢失24天后成功找回
- backdrop-filter,让你的网站熠熠生”毛’
- DDL和DML的含义与区别
- 三分之一的程序猿之创业组队与打怪升级
- linux关闭cups服务 关闭631端口 关闭avahi-daemon服务
- hive启动失败 显示:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time
- 安卓期末大作业——汉服社区(源码+任务书)
热门文章
- vue-element-ui的各种弹出框样式修改
- 如何将matlab数据行列互换,excel中散点图如何切换行列?:excel中列怎么互换
- 百无聊赖之JavaEE从入门到放弃(十)抽象方法_抽象类 接口
- C语言基础知识之分支结构
- mysql查询所有男生中姓王的_查询全体学生的姓名及其出生年份 (数据库)
- Unity学习——InstantOC
- (无报错)Java截取视频生成Gif动图 视频转gif动态图 视频截帧取图 java实现方式
- 利用android手机摄像头智能测量物体距离,高度
- 20个热门在线少儿编程网站【2019】
- python 程序化交易信号闪烁_程序化交易模型在回测时的偷价行为和信号闪烁问题...