Android Glide:如果请求失败,则阻止白色图像

时间:2016-02-06 09:02:54

标签: android android-glide

所以我只是感兴趣,如果提供的网址错误,我可以阻止Glide将白色(null)图像加载到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);
}

}

3 个答案:

答案 0 :(得分:17)

您可以使用.error(mDefaultBackground) --> 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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

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