返回介绍

入门指南

发布于 2025-01-04 00:12:05 字数 2911 浏览 0 评论 0 收藏 0

基本用法

使用 Glide 加载图像很容易,通常情况下只需要一行代码:

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

取消您不再需要的负载也很简单:

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

尽管清除不再需要的负载是好的做法,但您不需要这样做。事实上,当您通过 Glide.with() 方法传入的 Activity 或者 Fragment 被销毁时,Glide 将自动清除负载并且回收负载使用的任何资源。

应用

应用程序可以添加恰当的注解给 AppGlideModule 实现,以生成灵活的 API,其中包含大多数选项,包括在集成库中定义的选项。

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 实现在同一包下,类名为 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 或者使用您指定的占位图像,或者回调的图像。

Glide 唯一的要求是,对于任何可重用的目标 View,您可以复用之前的 View 加载新的图像或者调用 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);
    }
}

通过调用 clear() 或者 into(view) 方法作用在 View 上,您可以取消负载或者保证 Glide 在调用完成之后不会改变 View 的内容。如果您忘记调用 clear() 方法并且没有在该 View 上开启新的图像负载,那么在复用之前的位置的 View 时,您将不能指定 Drawable,并且可能会加载到老的图像从而改变 View 的内容。

虽然,我们在这里展示的示例是 RecyclerView,但同样的原则也适用于 ListView。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文