Glide介紹
這里引用框架作者的介紹
Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface. bumptech
簡單來說Glide是一個快速和高效的Android開源媒體管理和圖像加載框架。
如何使用
- 在 Gradle中加入如下代碼:
repositories {
mavenCentral()
}
dependencies {
compile 'com.github.bumptech.glide:glide:3.7.0'
}
在安卓的文件加入網(wǎng)絡(luò)訪問權(quán)限
<uses-permission android:name="android.permission.INTERNET"/>在需要加載圖片的地方盡情玩耍
ImageView iv = (ImageView) findViewById(R.id.id_img);
RequestManager requestManager = Glide.with(this);
GenericRequestBuilder builder = requestManager.load("http://imgsrc.baidu.com/forum/w%3D580/sign=97c4a9e062380cd7e61ea2e59145ad14/db7e47a98226cffc39ade9e2be014a90f703ea92.jpg");
builder.into(iv);
使用這以上三步即可成功圖片加載圖片。效果如下圖所示

X.png
Glide 不僅可以加載靜態(tài)圖片、還可以加載動態(tài)圖片。如下圖所示
(找不到mp4轉(zhuǎn)gif,如果上存不了MP4的就刪掉這個)
Glide 方法使用
- Glide.with()使用(返回關(guān)聯(lián)了相應(yīng)上下文的RequestManager實例。)
with(Context context). 使用Application上下文,Glide請求將不受Activity/Fragment生命周期控制。
with(Activity activity).使用Activity作為上下文,Glide的請求會受到Activity生命周期控制。
with(FragmentActivity activity).Glide的請求會受到FragmentActivity生命周期控制。
with(android.app.Fragment fragment).Glide的請求會受到Fragment 生命周期控制。
with(android.support.v4.app.Fragment fragment).Glide的請求會受到Fragment生命周期控制。
- requestManager.load()使用(返回GenericRequestBuilder實例。)
Glide基本可以load任何可以拿到的媒體資源,如:
load(Uri uri)
load(File file)
load(Integer resourceId)
load(URL url)
load(byte[] model)
load(T model)
loadFromMediaStore(Uri uri)
。load的資源也可以是本地視頻,如果想要load網(wǎng)絡(luò)視頻或更高級的操作可以使用VideoView等其它控件完成。
- GenericRequestBuilder使用
diskCacheStrategy(DiskCacheStrategy strategy).設(shè)置緩存策略。 DiskCacheStrategy.SOURCE:緩存原始數(shù)據(jù),DiskCacheStrategy.RESULT:緩存變換(如縮放、裁剪等)后的資源數(shù)據(jù),DiskCacheStrategy.NONE:什么都不緩存,DiskCacheStrategy.ALL:緩存SOURC和RESULT。默認采用DiskCacheStrategy.RESULT策略,對于download only操作要使用DiskCacheStrategy.SOURCE。
priority(Priority priority). 指定加載的優(yōu)先級,優(yōu)先級越高越優(yōu)先加載,但不保證所有圖片都按序加載。枚舉Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW。默認為Priority.NORMAL。
placeholder(int resourceId). 設(shè)置資源加載過程中的占位Drawable。
placeholder(Drawable drawable). 設(shè)置資源加載過程中的占位Drawable。
error(int resourceId).設(shè)置load失敗時顯示的Drawable。
error(Drawable drawable).設(shè)置load失敗時顯示的Drawable。
skipMemoryCache(boolean skip). 設(shè)置是否跳過內(nèi)存緩存,但不保證一定不被緩存(比如請求已經(jīng)在加載資源且沒設(shè)置跳過內(nèi)存緩存,這個資源就會被緩存在內(nèi)存中)。
into(ImageView view). 設(shè)置資源將被加載到的ImageView。取消該ImageView之前所有的加載并釋放資源。
into(int width, int height). 后臺線程加載時要加載資源的寬高值(單位為pixel)。
asBitmap(). 無論資源是不是gif動畫,都作為Bitmap對待。如果是gif動畫會停在第一幀。
asGif().把資源作為GifDrawable對待。如果資源不是gif動畫將會失敗,會回調(diào).error()。