在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

入門指南

基本用法

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

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

取消您不再需要的負載也很簡單:

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

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

應用

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

package com.example.myapp;

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

@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}

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

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

有關更多信息,請參閱Glide的生成的API頁面。

ListView和RecyclerView

在ListView或者RecyclerView中加載圖像使用相同的加載行,就像加載到單個的View一樣。Glide會處理View的復用跟請求的自動取消。

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

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

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

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

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

雖然,我們在這里展示的示例是RecyclerView,但同樣的原則也適用于ListView。

上一篇:選項下一篇:緩存