特點(diǎn)
1.使用簡(jiǎn)單僅僅需要一行代碼?
Glide.with(this).load("請(qǐng)求路徑").into(imageView);
2 可配置度高,自適應(yīng)性高舔哪。
3 支持常見的圖片格式
4 支持多種數(shù)據(jù)源
5? 高效的緩存支持memory 與disk圖片緩存槽棍,默認(rèn)bitmap格式采用RGB_565內(nèi)存
6 生命周期集成,根據(jù)activity/fragment生命周期自動(dòng)管理請(qǐng)求
7高效處理bitmap缆巧,使用bitmap pool使bitmap復(fù)用陕悬,主動(dòng)調(diào)用recycle回收需要回收的bitmap
上下文處理
with(Context context). 使用Application上下文按傅,Glide請(qǐng)求將不受Activity/Fragment生命周期控制。
with(Activity activity).使用Activity作為上下文拼岳,Glide的請(qǐng)求會(huì)受到Activity生命周期控制况芒。
with(FragmentActivity activity).Glide的請(qǐng)求會(huì)受到FragmentActivity生命周期控制。
with(android.app.Fragment fragment).Glide的請(qǐng)求會(huì)受到Fragment 生命周期控制耐版。
with(android.support.v4.app.Fragment fragment).Glide的請(qǐng)求會(huì)受到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? 禁止內(nèi)存緩存 skipMemoryCache(true)
2 清除內(nèi)存緩存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(當(dāng)前包)/cache 250大小
6 指定資源的優(yōu)先加載順序.priority(Priority.LOW)
IMMEDIATE,HIGH,NORMAL,LOW,priority,
7 先顯示縮略圖枫夺,再顯示原圖.thumbnail(0.1f)
8 對(duì)圖片進(jìn)行裁剪绘闷、模糊、濾鏡等處理
//圓形裁剪.bitmapTransform(new CropCircleTransformation(this))
//圓角處理.bitmapTransform(new RoundedCornersTransformation(this,30,0,RoundedCornersTransformation.CornerType.ALL))
.bitmapTransform(new GrayscaleTransformation(this))//灰度處理
9 對(duì)請(qǐng)求狀態(tài)進(jìn)行監(jiān)聽
實(shí)現(xiàn)RequestListener 接口
參考http://blog.csdn.net/shangmingchao/article/details/51125554
10 對(duì)資源的下載進(jìn)度進(jìn)行監(jiān)聽
參考http://blog.csdn.net/shangmingchao/article/details/51125554
對(duì)于GlideModule的使用
http://blog.csdn.net/shangmingchao/article/details/51026742
具體使用
添加依賴
compile'com.android.support:support-v4:23.3.0'
清單文件權(quán)限
<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)//出錯(cuò)的占位圖
.override(width,height)//圖片顯示的分辨率 ,像素值?? 可以轉(zhuǎn)化為DP再設(shè)置
.animate(R.anim.glide_anim) //動(dòng)畫
.error(R.mipmap.ic_launcher)//出錯(cuò)占位符
.centerCrop()
.fitCenter()
.into(holder.image);
CenterCrop()會(huì)縮放圖片讓圖片充滿整個(gè)ImageView的邊框华嘹,然后裁掉超出的部分。ImageVIew會(huì)被完全填充滿强挫,但是圖片可能不能完全顯示出薛躬。
fitCenter()會(huì)縮放圖片讓兩邊都相等或小于ImageView的所需求的邊框。圖片會(huì)被完整顯示,可能不能完全填充整個(gè)ImageView侦鹏。
加載git圖片 .asGif()如果gifUrl是一個(gè)gif,沒(méi)有異常發(fā)生略水。但如果gifUrl不是一個(gè)Gif,即使是一個(gè)完好的圖片(非Gif)慎璧,Glide也會(huì)加載失敗跨释。.error()回調(diào)方法會(huì)被調(diào)用,并加載錯(cuò)誤占位圖岁疼。
如果你的app需要顯示一組網(wǎng)絡(luò)URL缆娃,可能包括普通的圖片或者Gif瑰排。在一些情況下椭住,你可能并不在意是否要播放完整的Gif字逗。如果你只是想要顯示Gif的第一幀,當(dāng)URl指向的的確是Gif傻挂,你可以調(diào)用asBitmap()將其作為常規(guī)圖片顯示挖息。
混淆規(guī)則
-keeppublicclass*implementscom.bumptech.glide.module.GlideModule-keeppublicenumcom.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {**[] $VALUES;public*;
}