glide使用

glide在github地址:https://github.com/bumptech/glidegit

1.添加依賴(最好看官網,由於有時候添加依賴的會有輕微改動,版本也會一直更新)

repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.7.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.7.0'
}

2.簡單使用

  String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";
        Glide.with(this).load(url).into(imageView);

調用Glide.with()方法用於建立一個加載圖片的實例。with()方法能夠接收Context、Activity或者Fragment類型的參數。也就是說咱們選擇的範圍很是廣,無論是在Activity仍是Fragment中調用with()方法,均可以直接傳this。那若是調用的地方既不在Activity中也不在Fragment中呢?也不要緊,咱們能夠獲取當前應用程序的ApplicationContext,傳入到with()方法當中。注意with()方法中傳入的實例會決定Glide加載圖片的生命週期,若是傳入的是Activity或者Fragment的實例,那麼當這個Activity或Fragment被銷燬的時候,圖片加載也會中止。若是傳入的是ApplicationContext,那麼只有當應用程序被殺掉的時候,圖片加載纔會中止。github

接下來看一下load()方法,如下是加載不一樣類型的資源時的代碼示例

// 加載本地圖片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加載應用資源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加載二進制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加載Uri對象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

佔位圖

佔位圖是用來在未加載完成時預先展現的圖片,另外還給出了加載錯誤時展現其餘圖片,以及如何禁止使用緩存等緩存

Glide.with(this)
.load(url)
.placeholder(R.drawable.loading) //佔位圖
.error(R.drawable.error) //加載錯誤時顯示的圖片
.diskCacheStrategy(DiskCacheStrategy.NONE) //禁止使用緩存
.into(imageView);

指定圖片格式(靜態圖片仍是動態圖片GIF)

glide能夠自動識別要加載的資源時靜態仍是動態圖片,可是也能夠硬性指定,並且動態能夠指定成靜態,靜態指定成動態就會報錯。maven

Glide.with(this)
     .load(url)
     .asGif()   //動態   //.asBitmap()靜態
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

glide自動判斷imageview大小,避免內存浪費,同時還能夠指定圖片的大小

使用Glide,咱們就徹底不用擔憂圖片內存浪費,甚至是內存溢出的問題。由於Glide歷來都不會直接將圖片的完整尺寸所有加載到內存中,而是用多少加載多少。Glide會自動判斷ImageView的大小,而後只將這麼大的圖片像素加載到內存當中,幫助咱們節省內存開支。ide

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .override(100, 100)//指定圖片的大小,無論你控件多大,圖片就是這麼大
     .into(imageView);
相關文章
相關標籤/搜索