天天看點

Android圖檔緩存之Glide基礎(一)

前言

這篇文章給大家介紹下android目前使用比較廣泛的一個圖檔緩存庫—Glide,這個庫是google的一位開發人員在github上的一個開源項目。目前google的一些官方應用都在使用它,是以你現在就開始放心的用吧。

添加Glide

在module的build.gradle中添加以下依賴:

Glide使用方法和大名鼎鼎的Picasso比較類似,如果你有Picasso的使用經驗,那麼你将很容易上手使用。

常用功能

//占位符
Glide.with(this).load(url).placeholder(R.mipmap.ic_launcher).into(imageview);
//錯誤占位符
Glide.with(this).load(url).error(R.mipmap.ic_launcher).into(imageview);
//強制顯示淡入淡出功能,表示動畫時間ms
Glide.with(this).load(url).crossFade().into(imageview);
//不要淡入淡出效果
Glide.with(this).load(url).dontAnimate().into(imageview);
//改變圖檔大小,機關是pixel
Glide.with(this).load(url).override(,).into(imageview);
//Glide可以直接顯示Gif
Glide.with(this).load(gif_url).into(imageview);
//也可以隻顯示Glide的第一幀作為普通圖檔使用
Glide.with(this).load(gif_url).asBitmap().into(imageview);
//也可以強制顯示Gif,如果目标url不是gif則調用error()方法
Glide.with(this).load(gif_url).asGif().into(imageview);
//還可以顯示視訊,但目前隻支援本地視訊
Glide.with(this).load(Uri.fromFile(new File(local_video_path))).into(imageview);
           

進階功能

//跳過記憶體緩存,隻在磁盤緩存(預設false)
Glide.with(this).load(url).skipMemoryCacge(true).into(imageview);
//跳過磁盤緩存,隻在記憶體緩存(NONE表示什麼都不緩存)
Glide.with(this).load(url).diskCacheStrategy(DiskCacheStrategy.NONE).into(imageview);
//顯示縮略圖(顯示原始圖像的%)
Glide.with(this).load(url).thumbnail(f).into(imageview);
           

下載下傳bitmap

private SimpleTarget<GlideDrawable> mTarget = new SimpleTarget<GlideDrawable>() {
        @Override
        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
            //處理resource
        }
    };

private void loadFile(){
    Glide.with(this).load("url").into(mTarget);
}
           

以上這些隻是筆者目前用過的一些功能總結,後面還有更多更進階的功能文章還沒涉及到,可以參考github上的項目首頁。