返回介绍

选项

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

请求选项

Glide 中大多数的选项可以使用 RequestOptions 类和 apply() 方法来应用。

使用请求选项(其中包括):

  • 占位符
  • 转换
  • 缓存策略
  • 组件特定选项,如编码或解码质量,Bitmap 配置。

例如,要应用 CenterCropTransformation ,您的代码可以这样编写:

import static com.bumptech.glide.request.RequestOptions.centerCropTransform;

Glide.with(fragment)
    .load(url)
    .apply(centerCropTransform(context))
    .into(imageView);

RequestOptions 引入静态方法将是更加灵活的方式。

如果您始终想要在程序的不同部分共享选项,您可以实例化一个新的 RequestOptions 对象并传递给每个负载操作:

RequestOptions cropOptions = new RequestOptions().centerCrop(context);
...
Glide.with(fragment)
    .load(url)
    .apply(cropOptions)
    .into(imageView);

apply() 可以被调用多次,所以 RequestOptions 可以组合。如果两个 RequestOptions 对象包含冲突的,那么最后设置的 RequestOptions 才会生效。

过渡选项

过渡选项决定在请求完成后,将会发生什么。

应用过渡选项:

  • View 淡入
  • 占位符淡出
  • 没有过渡效果

没有过渡效果,您的图像会突然出现,立即替代之前的图像。为了避免突然改变,您可以淡入 View,或者使用过渡选项在 Drawable 之间淡入淡出。

例如,应用淡入淡出:

import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;

Glide.with(fragment)
    .load(url)
    .transition(withCrossFade())
    .into(view);

请求选项 不同, 过渡选项 是您使用 Glide 加载绑定资源的特殊类型。

因此,当您请求 Bitmap 时,您需要使用 BitmapTransitionOption 而不是 DrawableTransitionOptions 。因此,当您请求 Bitmap ,您可能需要的是简单的淡入,而不是淡入淡出。

RequestBuilder

在 Glide 中 RequestBuilder 是请求的核心,负责携带您的选项跟您请求 URL/模型开启新的负载。

使用 RequestBuilder 指定:

  • 要加载的资源类型(Bitmap,Drawable 等等)
  • 从 URL/模型中加载资源
  • 加载资源到 View
  • 任何您想申请的 RequestOption 对象
  • 任何您想申请的 TransitionOption 对象
  • 任何您想加载的缩略图

每次调用 Glide.with() 您都会产生一个 RequestManager 对象:

RequestManager requestManager = Glide.with(this);

选择资源类型

RequestManager 可以指定加载的资源类型。默认情况下,获取的是 Drawable RequestBuilder。您可以使用 as... 方法改变请求类型。例如,您可以调用 asBitmap() 您将获取一个 Bitmap RequestBuilder

RequestBuilder<Bitmap> requestBuilder = Glide.with(fragment).asBitmap();

应用请求选项

如上所示,通过 apply() 方法应用 请求选项 ,使用 transition() 方法应用 过渡选项

RequestBuilder<Drawable> requestBuilder = Glide.with(this).asDrawable();
requestBuilder.apply(requestOptions);
requestBuilder.transition(transitionOptions);

启动多个负载时,RequestBuilder 可以被重用:

RequestBuilder<Drawable> requestBuilder =
        Glide.with(fragment)
            .asDrawable()
            .apply(requestOptions);

for (int i = 0; i < numViews; i++) {
   ImageView view = viewGroup.getChildAt(i);
   String url = urls.get(i);
   requestBuilder.load(url).into(view);
}

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

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

发布评论

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