天天看點

Android架構之圖檔架構Glide一.Glide的簡單介紹

一.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() 表示的是圖檔沒加載完成前顯示的圖像。可以是資源檔案,可以是一個顔色的背景。

下面是一個程式加載網絡圖檔的效果:

Android架構之圖檔架構Glide一.Glide的簡單介紹

設計代碼:

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);

繼續閱讀