一、简介
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。
(1)使用简单
(2)可配置度高,自适应程度高
(3)支持常见图片格式,Jpg png gif webp
(4)支持多种数据源,网络、本地、资源、Assets 等
(5)高效缓存策略,支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半
(6)生命周期集成,根据Activity/Fragment生命周期自动管理请求
(7)高效处理Bitmap,使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减小系统回收压力
二、下载地址
https://github.com/bumptech/glide
三、功能
1、简单使用
Glide
.with(this)
.load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")
.into(imageView);
2、Glide.with()使用
(1)with(Context context).
使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。
(2)with(Activity activity).
使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
(3)with(FragmentActivity activity).
Glide的请求会受到FragmentActivity生命周期控制。
(4)with(android.app.Fragment fragment).
Glide的请求会受到Fragment 生命周期控制。
(5)with(android.support.v4.app.Fragment fragment).
Glide的请求会受到Fragment生命周期控制。
3、load()使用
Glide基本可以load任何可以拿到的媒体资源
SD卡资源:load("file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg")
assets资源:load("file:///android_asset/f003.gif")
raw资源:load("Android.resource://com.frank.glide/raw/raw_1")或load("android.resource://com.frank.glide/raw/"+R.raw.raw_1)
drawable资源:load("android.resource://com.frank.glide/drawable/news")或load("android.resource://com.frank.glide/drawable/"+R.drawable.news)
ContentProvider资源:load("content://media/external/images/media/139469")
http资源:load("https://img-my.csdn.net/uploads/201508/05/1438760757_3588.jpg")
https资源:load("https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp")
注意:
load不限于String类型
还可以是:load(Uri uri),load(File file),load(Integer resourceId),load(URL url),load(byte[] model),load(T model),loadFromMediaStore(Uri uri)。
4、重要功能:
(1)禁止内存缓存:
.skipMemoryCache(true)
(2)清除内存缓存:
// 必须在UI线程中调用
Glide.get(context).clearMemory();
(3)禁止磁盘缓存:
.diskCacheStrategy(DiskCacheStrategy.NONE)
(4)清除磁盘缓存:
// 必须在后台线程中调用,建议同时clearMemory()
Glide.get(applicationContext).clearDiskCache();
(5)获取缓存大小:
new GetDiskCacheSizeTask(textView).execute(new File(getCacheDir(), DiskCache.Factory.DEFAULT_DISK_CACHE_DIR));
(6)指定资源的优先加载顺序:
(7)先显示缩略图,再显示原图:
(8)对图片进行裁剪、模糊、滤镜等处理:
(9)对请求状态进行监听:
(10)对资源的下载进度进行监听:
5、API方法说明
(1)thumbnail(float sizeMultiplier).
请求给定系数的缩略图。如果缩略图比全尺寸图先加载完,就显示缩略图,否则就不显示。系数sizeMultiplier必须在(0,1)之间,可以递归调用该方法。
(2)sizeMultiplier(float sizeMultiplier).
在加载资源之前给Target大小设置系数。
(3)diskCacheStrategy(DiskCacheStrategy strategy).
设