Glide 4.3.1:如何使用error()?

新手上路,请多包涵

首先, GlideGlideApp 有什么区别?后者好像是自动生成的,但是步骤好像比较复杂所以我改用了Glide。他们似乎都有相同的方法。

所以,我使用 Glide.with(activity).load(fileName).error().into(imageView) 。问题是我无法理解传递给 error() 的内容。它没有采用可绘制资源 ID。 Android Studio 说参数是 RequestBuilder< Drawable!>?,但我找不到任何示例。

“错误:类型不匹配:推断类型为 Int,但 RequestBuilder? 是预期的”

原文由 Damn Vegetables 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 896
2 个回答

如果您使用的是 Glide v4 ,那么您必须使用 RequestOptions 来包含更多您想要的选项,例如 centerCrop()placeholder()error()priority()diskCacheStrategy()

所以在使用 RequestOptions 之后你的 Glide 看起来像这样 -

 RequestOptions options = new RequestOptions()
                    .centerCrop()
                    .placeholder(R.drawable.default_avatar)
                    .error(R.drawable.default_avatar)
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .priority(Priority.HIGH);

Glide.with(mContext).load(imgUrl)
                    .apply(options)
                    .into(picThumbnail);

现在您可以显示错误图像和占位符设置磁盘缓存等。

GlideApp 也是 Glide v4 的一部分。它用于在 Glide v4 中提供多个 Transformation ,使用 transforms() 方法:

 GlideApp.with(mContext)
  .load(imgUrl)
  .transforms(new CenterCrop(), new RoundedCorners(20))
  .into(target);

error() 和 placeholder() 使用 GlideApp -

 GlideApp.with(mContext)
            .load(imageUrl)
            .placeholder(R.drawable.placeholder_image)
            .error(R.drawable.error_image)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .priority(Priority.HIGH)
            .into(offerImage);

原文由 D_Alpha 发布,翻译遵循 CC BY-SA 4.0 许可协议

要回答你的第二个问题,一个是标题的一部分,你真的只应该关心 error() 如果你期望你正在调用的 url 或者 drawable/bitmap 是 null 并且你可能想要调用重试,否则您可以使用 error 可绘制对象来表示与 placeholderfallback 不同的状态。下图非常直接地解释了它: 显示 Glide 调用的三种可能失败情况的图表不幸的是,我不记得图像的原始来源。如果您知道,请在评论中告诉我,以便我可以正确地将其归于原作者!

从上图也可以看出,如果你不想为每个状态表示不同的状态,那么只设置一个占位符就足够了。

希望决策树能解决您的一些问题!抱歉,我没有回答您问题的所有部分,但其他一些答案已经回答了!

干杯!

原文由 anthonymonori 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏