glide在github地址:https://github.com/bumptech/glidegit
repositories {
mavenCentral()
google()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.7.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.0'
}
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
// 加載本地圖片 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);
glide能夠自動識別要加載的資源時靜態仍是動態圖片,可是也能夠硬性指定,並且動態能夠指定成靜態,靜態指定成動態就會報錯。maven
Glide.with(this) .load(url) .asGif() //動態 //.asBitmap()靜態 .placeholder(R.drawable.loading) .error(R.drawable.error) .diskCacheStrategy(DiskCacheStrategy.NONE) .into(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);