1.添加引用 build.gradle 中添加配置
?compile 'com.github.bumptech.glide:glide:3.7.0'
2.設置綁定生命周期
Glide.with(Context context);//綁定Context
Glide.with(Activity activity);//綁定Activity
Glide.with(FragmentActivity activity);//綁定FragmentActivity
Glide.with(Fragment fragment);//綁定Fragment
3. 簡單的加載圖片實例
Glide.with(this).load(imageUrl).into(imageView);
4.設置加載中以及加載失敗圖片
? ? ?placeholder()、error()
5.設置跳過內存緩存
? ? Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
6. 設置下載優先級
Glide.with(this).load(imageUrl).priority(Priority.NORMAL).into(imageView);
7.設置緩存策略
Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
策略解說:
all:緩存源資源和轉換后的資源
none:不作任何磁盤緩存
source:緩存源資源
result:緩存轉換后的資源
8.設置加載動畫
api也提供了幾個常用的動畫:比如crossFade()
Glide.with(this).load(imageUrl).animate(R.anim.item_alpha_in).into(imageView);
<set xmls..........>
? ? <alpha
?? ?android:duration="500"
? ?android:fromAlpha="0.0"
? ?android:toAlpha="1.0"/>
</set/>
9.設置縮略圖支持
這樣會先加載縮略圖 然后在加載全圖
Glide.with(this).load(imageUrl).thumbnail(0.1f).into(imageView);
10.設置加載尺寸
Glide.with(this).load(imageUrl).override(800, 800).into(imageView);
11.設置動態轉換
Glide.with(this).load(imageUrl).centerCrop().into(imageView);
api提供了比如:centerCrop()、fitCenter()等函數也可以通過自定義Transformation,舉例說明:比如一個人圓角轉化器
Glide.with(this).load(imageUrl).transform(newGlideRoundTransform(this)).into(imageView);
12.設置要加載的內容
項目中有很多需要先下載圖片然后再做一些合成的功能,比如項目中出現的圖文混排,該如何實現目標下
Glide.with(this).load(imageUrl).centerCrop().into(newSimpleTarget() {
@OverridepublicvoidonResourceReady(GlideDrawable resource, GlideAnimationglideAnimation) {
imageView.setImageDrawable(resource);
}
});
13 .設置監聽請求接口
? ? ? ? ??Glide.with(this).load(imageUrl).listener(newRequestListener() {
@OverridepublicbooleanonException(Exception e, String model, Target target,booleanisFirstResource) {returnfalse;
}
@Override public boolean onResourceReady(GlideDrawable resource, String model, Target target,booleanisFromMemoryCache,booleanisFirstResource) {//imageView.setImageDrawable(resource);returnfalse;
}
}).into(imageView);
設置監聽的用處 可以用于監控請求發生錯誤來源,以及圖片來源 是內存還是磁盤
14 .設置動態GIF加載方式
Glide.with(this).load(imageUrl).asBitmap().into(imageView);//顯示gif靜態圖片Glide.with(this).load(imageUrl).asGif().into(imageView);//顯示gif動態圖片
15.緩存的動態清理
Glide.get(this).clearDiskCache();//清理磁盤緩存 需要在子線程中執行Glide.get(this).clearMemory();//清理內存緩存? 可以在UI主線程中進行
高級部分查看Gilde