2016-07-07 1 views
3

Метод Glide - call после возврата или ошибки при попытке загрузить фотографию.Метод Glide - call после возврата или ошибки при попытке загрузки фото

Привет!

Есть ли способ проверить, загружено ли Glide фото со ссылкой или использовать fallback/error, когда ссылка не действительна или фото недоступно?

Я хочу, чтобы вызвать метод (загрузить другую фотографию), когда Glide не загружает фотографию.

Это мой Glide .: например

Glide 
     .with(mActivity) 
     .load(news.getPagemap().getCseThumbnail().get(0).getSrc()) 
     .fallback(R.drawable.bg_gradient) 
     .error(R.drawable.bg_gradient) 
     .centerCrop() 
     .crossFade() 
     .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
     .into(holder.photo); 

Я попытался сравнить ConstantValues - holder.photo.getDrawable().getConstantState().equals(mActivity.getResources().getDrawable(R.drawable.bg_gradient).getConstantState()) но получил NullPointerException.

ответ

6

Это помогает мне:

private void loadPicture(final ViewHolder holder, String photoUrl, final Boolean shouldLoadAgain) { 
    holder.progressBar.setVisibility(View.VISIBLE); 

    Glide 
     .with(mActivity) 
     .load(photoUrl) 
     .fallback(R.drawable.bg_gradient) 
     .error(R.drawable.bg_gradient) 
     .centerCrop() 
     .crossFade() 
     .listener(new RequestListener<String, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
       holder.progressBar.setVisibility(View.GONE); 
       if (shouldLoadAgain) 
        loadPicture(holder, mPhotoUrl, false); 
       return false; 
      } 

      @Override 
      public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
       holder.progressBar.setVisibility(View.GONE); 
       return false; 
      } 
     }) 
     .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
     .into(holder.photo); 
} 
+1

Спасибо за это, я использовал Picasso, чтобы сделать то же самое (попробуйте загрузить изображение, используя один URL, и если это не удается, используйте другой), но он продолжал давать мне из памяти ошибки. нет ошибок с помощью скольжения! –

+0

@CliveSargeant Спасибо! Я рад, что это помогает! – y07k2