Glide

  • 依賴 implementation'com.github.bumptech.glide:glide:4.8.0'

1. Glide將緩沖分為連兩個模塊

①. 內(nèi)存緩存:防止應用重復將圖片讀取到內(nèi)存中

//禁用內(nèi)存緩存功能

Glide.with(this) .load(url) .skipMemoryCache(true) .into(imageView);

②. 硬盤緩沖:防止應用重復從網(wǎng)絡(luò)或其他地方下載和讀取數(shù)據(jù)

//調(diào)用diskCacheStrategy()方法并傳入DiskCacheStrategy.NONE,就可以禁用掉Glide的硬盤緩存功能了
Glide.with(this) .load(url) .diskCacheStrategy(DiskCacheStrategy.NONE) .into(imageView);

2. diskCacheStrategy()方法 的五種參數(shù)

DiskCacheStrategy.NONE: 表示不緩存任何內(nèi)容。
DiskCacheStrategy.DATA: 表示只緩存原始圖片。
DiskCacheStrategy.RESOURCE: 表示只緩存轉(zhuǎn)換過后的圖片。
DiskCacheStrategy.ALL : 表示既緩存原始圖片,也緩存轉(zhuǎn)換過后的圖片。 DiskCacheStrategy.AUTOMATIC: 表示讓Glide根據(jù)圖片資源智能地選擇使用哪一種緩存策略(默認選項).

3. Glide的使用:

//本地

    //Glide.with(this).load(localUrl).into(iv_img);

//資源

    //Glide.with(this).load(R.mipmap.ic_launcher).into(iv_img);



    RequestOptions requestOptions =new RequestOptions();

//占位符

//(在圖片還沒有加載出來時 放一張圖片)

        //requestOptions.placeholder(R.mipmap.ic_launcher);

//錯誤占位符(路徑錯誤時 所加載出來的圖片)

        requestOptions.error(R.drawable.ic_launcher_background);

//指定圖片大小

        //requestOptions.override(100, 100);

//圓形圖片

        //requestOptions.circleCrop();

//圓角圖片

            RoundedCorners corners =new RoundedCorners(100);

           requestOptions.transform(corners);

//靜止任何轉(zhuǎn)換

        //requestOptions.dontTransform();

//內(nèi)存緩沖

        //requestOptions.skipMemoryCache(false);

//硬盤

        //requestOptions.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);

    Glide.with(this)

            //.asGif()//加載動態(tài)圖,如果有圖片不是GIF,則直接加載占位圖

           // .asBitmap()//將動圖轉(zhuǎn)換為靜圖(如果是Gif則只加載第一幀)

            .load(localUrl)

            .apply(requestOptions)

            .into(iv_img);

}

4. 實現(xiàn)下載圖片并且展示下載圖片

@Override

public void onClick(View v) {

switch (v.getId()) {

    case R.id.btn_bownload:

            download();

        break;

    case R.id.btn_doenload_show:

                //顯示下載好的圖片

                Glide.with(MainActivity.this)

                .load(file)

                .into(iv_img);

            break;

    }

}

private void download() {

new Thread(new Runnable() {

@Override

        public void run() {

FutureTarget fileFutureTarget = Glide

.with(MainActivity.this)

.load(netUrl)

//下載圖片

                    .downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);

try {

//下載好圖片的路徑

                file = fileFutureTarget.get();

Log.e("TAG","路徑" +file.getAbsolutePath());

}catch (ExecutionException e) {

e.printStackTrace();

}catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

}

?著作權(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ù)。

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