2016-07-07 22 views
3

滑動 - 嘗試加載照片時回退或出現錯誤後調用方法。滑動 - 嘗試加載照片時回退或出錯後的調用方法

嗨!

有沒有一種方法來檢查,如果從鏈接或Glide載照片使用fallback/error當鏈接無效或照片不可用?

我的意思是,當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

感謝這個,我用畢加索做同樣的事情(使用一個URL嘗試加載圖像,如果失敗,則使用另一個),但它不停地給我出的內存錯誤。沒有錯誤使用滑翔! –

+0

@CliveSargeant謝謝!我很高興它可以幫助你! – y07k2

相關問題