web-dev-qa-db-ja.com

Androidグライド:リクエストが失敗した場合に白い画像を防ぐ

したがって、提供されたURLが間違っている場合に、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);
}

}

11
Leo Starić

.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);

から ドキュメント

21
Dhaval Parmar

Glideの新しいバージョンの場合、エラーイメージを設定するための構文は次のとおりです。

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

2020年に完全に機能する最も簡単な方法は

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