鍍金池/ 教程/ Android/ 入門指南
配置
Generated API
轉(zhuǎn)換
選項(xiàng)
過(guò)渡效果
關(guān)于Glide
緩存
調(diào)試
目標(biāo)
占位符
下載和設(shè)置
入門指南

入門指南

基本用法

使用Glide加載圖像很容易,通常情況下只需要一行代碼:

Glide.with(fragment)
    .load(myUrl)
    .into(imageView);

取消您不再需要的負(fù)載也很簡(jiǎn)單:

Glide.with(fragment).clear(imageView);

盡管清除不再需要的負(fù)載是好的做法,但您不需要這樣做。事實(shí)上,當(dāng)您通過(guò)Glide.with()方法傳入的Activity或者Fragment被銷毀時(shí),Glide將自動(dòng)清除負(fù)載并且回收負(fù)載使用的任何資源。

應(yīng)用

應(yīng)用程序可以添加恰當(dāng)?shù)淖⒔饨oAppGlideModule實(shí)現(xiàn),以生成靈活的API,其中包含大多數(shù)選項(xiàng),包括在集成庫(kù)中定義的選項(xiàng)。

package com.example.myapp;

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}

默認(rèn)情況下,生成的API會(huì)跟您的AppGlideModule實(shí)現(xiàn)在同一包下,類名為GlideApp。使用該API,應(yīng)用程序可以在所有的負(fù)載中用GlideApp.with()代替Glide.with()。

GlideApp.with(fragment)
   .load(myUrl)
   .placeholder(placeholder)
   .fitCenter()
   .into(imageView);

有關(guān)更多信息,請(qǐng)參閱Glide的生成的API頁(yè)面。

ListView和RecyclerView

在ListView或者RecyclerView中加載圖像使用相同的加載行,就像加載到單個(gè)的View一樣。Glide會(huì)處理View的復(fù)用跟請(qǐng)求的自動(dòng)取消。

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    String url = urls.get(position);
    Glide.with(fragment)
        .load(url)
        .into(holder.imageView);
}

您不需要檢測(cè)您傳遞的URL是否為空,如果URL為空,Glide會(huì)清除這個(gè)View或者使用您指定的占位圖像,或者回調(diào)的圖像。

Glide唯一的要求是,對(duì)于任何可重用的目標(biāo)View,您可以復(fù)用之前的View加載新的圖像或者調(diào)用clare()API來(lái)顯示的清除。

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if (isImagePosition(position)) {
        String url = urls.get(position);
        Glide.with(fragment)
            .load(url)
            .into(holder.imageView);
    } else {
        Glide.with(fragment).clear(holder.imageView);
        holder.imageView.setImageDrawable(specialDrawable);
    }
}

通過(guò)調(diào)用clear()或者into(view)方法作用在View上,您可以取消負(fù)載或者保證Glide在調(diào)用完成之后不會(huì)改變View的內(nèi)容。如果您忘記調(diào)用clear()方法并且沒(méi)有在該View上開(kāi)啟新的圖像負(fù)載,那么在復(fù)用之前的位置的View時(shí),您將不能指定Drawable,并且可能會(huì)加載到老的圖像從而改變View的內(nèi)容。

雖然,我們?cè)谶@里展示的示例是RecyclerView,但同樣的原則也適用于ListView。

上一篇:選項(xiàng)下一篇:緩存