滑动4.3.1:如何使用error()?

Dam*_*les 16 android kotlin android-glide

首先,Glide和之间有什么区别GlideApp?后者似乎是自动生成的,但步骤似乎很复杂,所以我使用了Glide.他们似乎都有相同的方法.

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

"错误:类型不匹配:推断类型是Int,但RequestBuilder <Drawable!>?是预期的"

D_A*_*pha 37

如果您使用的是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);
Run Code Online (Sandbox Code Playgroud)

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

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

GlideApp.with(mContext)
  .load(imgUrl)
  .transforms(new CenterCrop(), new RoundedCorners(20))
  .into(target);
Run Code Online (Sandbox Code Playgroud)

使用GlideApp的 error()和占位符()-

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


ant*_*ori 7

要回答你的第二个问题而且那个是标题的一部分,你真的应该关心error()你是否期望你正在调用的url或者drawable/bitmap是null并且你可能想要调用重试,否则你可以使用errordrawable与placeholder或相比,发出不同状态的信号fallback.以下图表非常简单地解释了它: 该图显示了Glide调用的三种可能的失败案例 不幸的是我不记得图像的原始来源.如果您知道,请在评论中告诉我,我可以正确地将其归于原作者!

正如您从上面的图表中看到的那样,如果您不想为每个图表表示不同的状态,那么仅设置占位符就足够了.

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

干杯!