【问题标题】:Android Glide: prevent white image if the request failsAndroid Glide:如果请求失败,防止出现白色图像
【发布时间】:2020-04-02 02:06:33
【问题描述】:

所以如果提供的 url 错误,我是否可以阻止 Glide 将白色(空)图像加载到 ImageView 中。 如果找不到图像,我想将我提供的图像保留在 XML 中(因为它可能由于用户输入而出错)。

我尝试在侦听器中返回 true,但我想这只是用于动画处理。 非常感谢!

 public static void loadImage(String url, Context c, ImageView target) {
    Glide.with(c).load(url).listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            e.printStackTrace();
            return true;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            return false;
        }
    }).into(target);
}

}

【问题讨论】:

    标签: android android-glide


    【解决方案1】:

    您可以使用.error(mDefaultBackground) --&gt; Sets a Drawable to display if a load fails. 保留图像。就像下面

    Drawable mDefaultBackground = getResources().getDrawable(R.drawable.default_background);
    
    Glide.with(getActivity())
                    .load(uri)
                    .centerCrop()
                    .error(mDefaultBackground).into(target);
    

    来自documentation

    【讨论】:

    • 这对我有帮助,我只是调整了静态函数以从 ImageView 获取当前可绘制对象,因此我不必手动加载它并跟踪实际可绘制对象是什么。谢谢!
    • 你可以直接使用资源id而不是创建一个Drawable:.error(R.drawable.ic_error_placeholder_24dp)
    【解决方案2】:

    对于较新版本的 Glide,设置错误图片的语法如下:

    Glide.with(mContext)
         .load(url)
         .error(Glide.with(imgView).load(R.drawable.ic_image_when_url_fails))
         .into(imgView);
    

    【讨论】:

    • 什么版本的 Glide 库?
    【解决方案3】:

    在 2020 年完美运行的最简单方法是

    Glide.with(context)
          .load(image)
          .error(R.drawable.error_img) //in case of error this is displayed
          .into(imageView);
    

    【讨论】:

      猜你喜欢
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多