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)存中的