一.Glide的簡單介紹
Glide是網絡架構中加載圖檔最簡單使用的一種工具。
依賴: compile 'com.github.bumptech.glide:glide:3.7.0'
GitHub中的源碼位址:https://github.com/bumptech/glide
我們需要了解它的源碼位址,作用,類和使用方法, 依賴的版本是會更新的。
比如下載下傳一張網絡的圖檔到ImagView中,使用一句話就可以了:
Glide.with(this).load("http://p0.so.qhmsg.com/t015a2d97fc46c534d0.jpg")
.into(imageView).onLoadStarted(new ColorDrawable());
圖檔加載庫的優勢就在于此。簡簡單單一句話,下載下傳,緩存,加載統統搞定。簡直就是美好一生的東西。而Glide就是這樣使人美好一生的東西之一。
下表是.load()可以傳入的參數及說明
參數 | 說明 |
---|---|
.load(String string) | string可以為一個檔案路徑、uri或者url |
.load(Uri uri) | uri類型 |
.load(File file) | 檔案 |
.load(Integer resourceId) | 資源Id,R.drawable.xxx或者R.mipmap.xxx |
.load(byte[] model) | byte[]類型 |
.load(T model) | 自定義類型 |
.onLoadStarted() 表示的是圖檔沒加載完成前顯示的圖像。可以是資源檔案,可以是一個顔色的背景。
下面是一個程式加載網絡圖檔的效果:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiM5czNwkTMzEDNwITM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
設計代碼:
package com.lwz.glide;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView imageView=new ImageView(this);
setContentView(imageView);
//使用glide非常簡單,一句話就可以了
Glide.with(this).load("http://p0.so.qhmsg.com/t015a2d97fc46c534d0.jpg")
.into(imageView).onLoadStarted(new ColorDrawable());
}
}
當然Glide也可以用來加載本地的圖檔資源,但是主要需求還是用來請求網絡的圖檔資源。
正常情況下請求網絡資料還要使用異步任務或子線程來,而這裡使用Glide就可以很友善的請求到圖檔的資源資料,并綁定到某個控件上。
這裡有Glide的另一個工具包glide-transformations,也是非常受歡迎的,并且可以支援圓角顯示最終傳回的圖檔!
依賴:compile ‘jp.wasabeef:glide-transformations:2.0.1’
這是Github中的位址:https://github.com/wasabeef/glide-transformations
加載顯得成普通圖檔的語句:和上面的語句一模一樣!
加載顯示成圓角圖檔的語句:
Glide.with(this).load(path).bitmapTransform(new CropCircleTransformation(this)).into(imageView);