ddu-picture-glide

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容