一、Glide官方说明
Glide支持获取,解码和显示视频静止图像,图像和动画gif。 GLIDE包括一个灵活的API,该API允许开发人员插入几乎所有网络堆栈。默认滑行使用自定义HttpUrlConnection基于基于的堆栈,但还包括实用程序库插入Google的凌空项目或Square的Okhttp库。
Glide的主要重点是使滚动尽可能流畅和快速地滚动,但对于几乎需要获取,调整大小和显示远程图像的任何情况,GLIDE也有效。
二、使用说明
https://github.com/bumptech/glide
implementation 'com.github.bumptech.glide:glide:4.16.0'
简单使用:Glide.with(context).load("http://www.bigsun.top/img/bigsun.png").into(imageView);
三、常用的属性说明
(1).placeholder(R.drawable.bs_tmp_img_01.png),这个属性用于在加载中临时显示的图片,当图片加载完成后会自动替换;
(2)内存缓存 (默认开启),如不想开启可以通过设置 “ skipMemoryCache(true) ” 来关闭内存缓存。
● 实现是基于:LruCache 算法(Least Recently Used) & 弱引用机制;
● LruCache算法原理:将 最近使用的对象用强引用的方式存储在LinkedHashMap中 ;当缓存满时 ,将最近最少使用的对象从内存中移除;
● 弱引用:弱引用的对象具备更短生命周期,因为当JVM进行垃圾回收时,一旦发现弱引用对象,都会进行回收(无论内存充足否);
(3)磁盘缓存,缓存在Android机存储容量里,如果不想缓存可通过设置 “ DiskCacheStrategy.AUTOMATIC ”;
● DiskCacheStrategy.AUTOMATIC ,默认配置,当加载网络图片时使用 DATA,本地图片使用 RESOURCE;
忘了段落限制字数了
三(续)、常用的属性说明
(1)● DiskCacheStrategy.DATA: 只缓存原始图片;
● DiskCacheStrategy.RESOURCE: 只缓存转换过后的图片;
● DiskCacheStrategy.ALL: 既缓存原始图片,也缓存转换过后的图片;对于远程图片,缓存 DATA和 RESOURCE;对于本地图片,只缓存 RESOURCE;
● DiskCacheStrategy.NONE: 不实用磁盘缓存
● 缓存目的:减少消耗流量,加快响应速度,减少卡顿,优化内存;
(2).error(R.drawable.bs_error_img_01.png);
(3).asgif()加载GIF动图时可使用此属性指定加载;
(4).override(width,height),指定加载图片裁剪宽高;
● .centerCrop():保持图片尺寸比例,以图片中心裁剪指定宽高;
● .fitcenter():用于设置图片的缩放方式,使图片按比例缩放以适应目标视图的大小;