特点
1.使用简单仅仅需要一行代码
Glide.with(this).load("请求路径").into(imageView);
2 可配置度高,自适应性高。
3 支持常见的图片格式
4 支持多种数据源
5 高效的缓存支持memory 与disk图片缓存,默认bitmap格式采用RGB_565内存
6 生命周期集成,根据activity/fragment生命周期自动管理请求
7高效处理bitmap,使用bitmap pool使bitmap复用,主动调用recycle回收需要回收的bitmap
上下文处理
with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。
with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。
资源处理
Glide基本可以load任何可以拿到的媒体资源,如:
loadSD卡资源:load("file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg")
loadassets资源:load("file:///android_asset/f003.gif")
loadraw资源:load("android.resource://com.frank.glide/raw/raw_1")或load("android.resource://com.frank.glide/raw/"+R.raw.raw_1)
loaddrawable资源:load("android.resource://com.frank.glide/drawable/news")或load("android.resource://com.frank.glide/drawable/"+R.drawable.news)
loadContentProvider资源:load("content://media/external/images/media/139469")
loadhttp资源:load("http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg")
loadhttps资源: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)
重要功能
1 禁止内存缓存 skipMemoryCache(true)
2 清除内存缓存Glide.get(this).clearMemory();
3 禁止磁盘缓存 diskCacheStrategy()
4 清除磁盘缓存Glide.get(this).clearDiskCache();
5 获取缓存大小new GetDiskCacheSizeTask(textView).execute(new File(getCacheDir(), DiskCache.Factory.DEFAULT_DISK_CACHE_DIR));// /data/data/cn.xxx.xxx(当前包)/cache 250大小
6 指定资源的优先加载顺序.priority(Priority.LOW)
IMMEDIATE,HIGH,NORMAL,LOW,priority,
7 先显示缩略图,再显示原图.thumbnail(0.1f)
8 对图片进行裁剪、模糊、滤镜等处理
//圆形裁剪.bitmapTransform(new CropCircleTransformation(this))
//圆角处理.bitmapTransform(new RoundedCornersTransformation(this,30,0,RoundedCornersTransformation.CornerType.ALL))
.bitmapTransform(new GrayscaleTransformation(this))//灰度处理
9 对请求状态进行监听
实现RequestListener 接口
参考http://blog.csdn.net/shangmingchao/article/details/51125554
10 对资源的下载进度进行监听
参考http://blog.csdn.net/shangmingchao/article/details/51125554
对于GlideModule的使用
http://blog.csdn.net/shangmingchao/article/details/51026742
具体使用
添加依赖
compile'com.android.support:support-v4:23.3.0'
清单文件权限
<uses-permissionandroid:name="android.permission.INTERNET">
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE">
具体使用
在listview中的使用
Glide.with(mContext)
.load(url)
.placeholder(R.mipmap.ic_launcher)//占位图
.error(R.mipmap.ic_launcher)//出错的占位图
.override(width,height)//图片显示的分辨率 ,像素值 可以转化为DP再设置
.animate(R.anim.glide_anim) //动画
.error(R.mipmap.ic_launcher)//出错占位符
.centerCrop()
.fitCenter()
.into(holder.image);
CenterCrop()会缩放图片让图片充满整个ImageView的边框,然后裁掉超出的部分。ImageVIew会被完全填充满,但是图片可能不能完全显示出。
fitCenter()会缩放图片让两边都相等或小于ImageView的所需求的边框。图片会被完整显示,可能不能完全填充整个ImageView。
加载git图片 .asGif()如果gifUrl是一个gif,没有异常发生。但如果gifUrl不是一个Gif,即使是一个完好的图片(非Gif),Glide也会加载失败。.error()回调方法会被调用,并加载错误占位图。
如果你的app需要显示一组网络URL,可能包括普通的图片或者Gif。在一些情况下,你可能并不在意是否要播放完整的Gif。如果你只是想要显示Gif的第一帧,当URl指向的的确是Gif,你可以调用asBitmap()将其作为常规图片显示。
混淆规则
-keeppublicclass*implementscom.bumptech.glide.module.GlideModule-keeppublicenumcom.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {**[] $VALUES;public*;
}