glide的特別用法(展示gif,通過url獲取Bitmap)

Glide的普通使用,Glide.with(Context).load(ImgUrl).into(ImageView),Context是該界面的上下文,ImgUrl是網(wǎng)絡(luò)圖片路徑,ImageView需要加載到的圖片控件

<pre>Glide.with(Context).load(ImgUrl).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(ImageView)


# RUNOOB Markdown Test

## Hello World!

Context是該界面的上下文,ImgUrl是網(wǎng)絡(luò)圖片路徑,ImageView需要加載到的圖片控件,

diskCacheStrategy從字面上看是磁盤緩存策略,DiskCacheStrategy是個枚舉類,源碼中有

/** Caches with both {@link #SOURCE} and {@link #RESULT}. */緩存了原始圖片和處理后的圖片數(shù)據(jù)

ALL(true,true),

/** Saves no data to cache. */不往磁盤上存儲數(shù)據(jù)

NONE(false,false),

/** Saves just the original data to cache. */僅僅保存原始圖片的大小到磁盤上

SOURCE(true,false),

/** Saves the media item after all transformations to cache. */保存處理后的圖片的大小到磁盤上

RESULT(false,true);

如果你一個不斷變化的圖片,用的圖片是同一個url的話,應(yīng)該選擇DiskCacheStrategy.NONE這樣才能達(dá)到你想要的效果,控件上的圖片才會不斷變化

如果你經(jīng)常需要對圖片進行處理,獲取不同版本的圖片,這種場景DiskCacheStrategy.SOURCE更合適,緩存圖片的原始尺寸進行處理

skipMemoryCache(true)從名稱上可以看出了跳過內(nèi)存緩存,默認(rèn)是false()即是不跳過,先從內(nèi)存緩存中獲取,當(dāng)設(shè)置為true的時候,不從內(nèi)存上獲取數(shù)據(jù)

diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true) 這種設(shè)置就同時禁止往磁盤和內(nèi)存中緩存數(shù)據(jù),適用于圖片不斷變化的場景

以上僅僅只是網(wǎng)絡(luò)的圖片,如果遇到本地圖片、動態(tài)圖片的加載,如何加載圖片資源呢?

如果Android中res下的資源,直接用資源id就可以了,我們以展示gif圖片資源為例

Glide.with(Context).load(R.drawable.tmpgif).asGif().into(ImageView)? ? asGif()以gif來展示,動態(tài)圖片效果,默認(rèn)情況下是asBitmap()來加載,如果是動態(tài)圖片資源的話,默認(rèn)會加載第一幀圖片來顯示

如果是需要加載本地資源的話,我們可以采用下面的這種方式:File file=newFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"tmp.jpg")Glide.with(Context).load(file).into(ImageView),Context是該界面的上下文,ImgUrl是網(wǎng)絡(luò)圖片路徑,ImageView需要加載到的圖片控件

如果你需要用Bitmap類型的圖片資源,

Glide.with(Context).load(ImgUrl).asBitmap().diskCacheStrategy(DiskCacheStrategy.NONE)

.skipMemoryCache(false).into(new SimpleTarget() {

@Override

? ? public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {

}

});

這里的resource就會獲取到你想要的Bitmap類型的資源,比如QQ圖片分享場景場景中可以這樣使用,skipMemoryCache(false)可以不用加的,因為Glide默認(rèn)情況下是緩存到內(nèi)存中的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容