Glide常見(jiàn)用法總結(jié)

Glide作為開(kāi)發(fā)常用的圖片加載庫(kù),有許多實(shí)用而且強(qiáng)大的功能,那么,今天就來(lái)總結(jié)一番,這次把比較常見(jiàn)的都寫(xiě)出來(lái),但并不是全部哦。
Glide和Picasso有90%的相似度,準(zhǔn)確的說(shuō),就是Picasso的克隆版本。但是在細(xì)節(jié)上還是有不少區(qū)別的。Glide的使用非常方便,而且使用了鏈?zhǔn)骄幊?,所以方法直接連接寫(xiě)在后便就可以了。

  • 1:Glide的配置
compile 'com.github.bumptech.glide:glide:3.7.0'
  • 2最簡(jiǎn)單的用法
    異步加載圖片:
Glide.with(context).load(url).into(imageView);

這是最簡(jiǎn)單的用法了,with里填上下文,load里面填寫(xiě)url,into填寫(xiě)要下載到的控件上即可

  • 3設(shè)置占位圖和錯(cuò)誤圖:
placeholder(R.drawable.user_placeholder)
error(R.drawable.user_placeholder_error)
  • 4 load方法的使用
    Glide基本可以load任何可以拿到的媒體資源,如:
    load SD卡資源:load("file://"+Environment.getExternalStorageDirectory().getPath()+"/test.jpg")
    load assets資源:load("file:///android_asset/f003.gif")
    load raw資源:load("Android.resource://包名/raw/raw_1")
    或load("android.resource://包名/raw/"+R.raw.raw_1)
    load drawable資源:load("android.resource://包名/drawable/"+R.drawable.news)
    load ContentProvider資源:load("content://media/external/images/media/139469")
    load http資源:load("http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg")
    load https資源:load("https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp")

  • 當(dāng)然,load不限于String類型,還可以:
    load(Uri uri),
    load(File file),
    load(Integer resourceId),
    load(URL url),
    load(byte[] model),
    load(T model),
    loadFromMediaStore(Uri uri)。

  • 5設(shè)置緩存策略
    diskCacheStrategy(DiskCacheStrategy.ALL)
    可選策略:
    DiskCacheStrategy.SOURCE:緩存原始數(shù)據(jù);
    DiskCacheStrategy.RESULT:緩存變換(如縮放、裁剪等)后的資源數(shù)據(jù);
    DiskCacheStrategy.NONE:什么都不緩存(不進(jìn)行磁盤緩存);
    DiskCacheStrategy.ALL:緩存SOURC和RESULT;
    默認(rèn)采用DiskCacheStrategy.RESULT策略;
    對(duì)于download only操作要使用DiskCacheStrategy.SOURCE;

  • 6清空緩存
    禁止內(nèi)存緩存:

.skipMemoryCache(true)

清除內(nèi)存緩存:
// 必須在UI線程中調(diào)用

Glide.get(context).clearMemory();

禁止磁盤緩存:

.diskCacheStrategy(DiskCacheStrategy.NONE)

清除磁盤緩存:

// 必須在后臺(tái)線程中調(diào)用,建議同時(shí)clearMemory()
Glide.get(applicationContext).clearDiskCache();
  • 7設(shè)置請(qǐng)求優(yōu)先級(jí)
    priority(Priority.HIGH)
    優(yōu)先級(jí)越高越優(yōu)先加載,但不保證所有圖片都按序加載。可選參數(shù):
    枚舉Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW。默認(rèn)為Priority.NORMAL。
  • 8 設(shè)置縮略圖
    thumbnail()
  • 9 直接獲得Bitmap
    有些時(shí)候我們并不希望把圖片放入ImageView中。我們只要 Bitmap 本身。Glide 提供了一個(gè)用 Targets 的簡(jiǎn)單的方式去接受圖片資源的 Bitmap。Targets 是回調(diào)函數(shù),它在 Glide 做完所有的加載和處理之后返回結(jié)果。
    方法1
Glide.with(this).load(url).asBitmap().into(newSimpleTarget<Bitmap>() {
    @Override
    public voidonResourceReady(Bitmap resource, GlideAnimation<? super Bitmap>glideAnimation) {
         //resource即是獲得的Bitmap
    }
});

方法2

Bitmap bitmap =Glide.with(MainActivity.this).load(url).asBitmap().into(500, 500).get();

該方式只能在子線程中獲得

  • 10加載圖片到Notification中
NotificationTarget notificationTarget =
new NotificationTarget(
     Context,
     RemoteViews,
     viewid,
     notificationObject,
     notifyId);
Glide.with(this).load(url).asBitmap().into(notificationTarget);
  • 11 Glide自帶的一個(gè)漸變動(dòng)畫(huà)
Glide.with(this).load(url).crossFade([duration]).into(iv2);
``
- 12加載Gif

//普通顯示GIF
Glide.with( context ).load( gifUrl ).into( iv );
//添加GIF檢查,如果不是GIF就會(huì)顯示加載失敗位圖
Glide.with( context ).load( gifUrl ).asGif().into( iv);


- 13顯示本地視頻

String filePath ="/storage/emulated/0/Pictures/example_video.mp4";
Glide
.with(context )
.load(Uri.fromFile( new File( filePath ) ) )
.into( iv );

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

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

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