2016-05-12 2 views
0

У меня есть RecylerView, в котором каждый элемент содержит Iamge, чтобы загрузить изображение. Я использую Glide. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые изображения в списке, которые не отображаются, а в моем onException обращаются к обоим исключениям и модели, являются нулевыми для этих изображений.Glide missing some images in loading

enter image description here

если вы увидите четвертый пункт в списке изображений не отображается.

Вот как я это кодирование

Glide.with(context).load(productItem.getImg()) 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .listener(new RequestListener<String, GlideDrawable>() { 
        @Override 
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
         if(e != null) { 
          e.printStackTrace(); 
         } 
         return false; 
        } 

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

и в XML я есть ImageView объявить как этот

<ImageView 
     android:id="@+id/imageViewModel" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_margin="@dimen/cart_vertical_margin"/> 
+0

Используйте 'SimpleTarget', чтобы загрузить ваш растровое изображение, в котором вы можете указать высоту и ширину желания для загрузки изображения с сервера. – Piyush

+0

SimpleTarget? как я могу использовать SimpleTarget? – user2934930

+0

некоторое время исключает скольжение в случае, если он не сможет загрузить или что-то вроде сети и т. Д. Я объясню, как лучше использовать скольжение, полагайте, что это вам очень поможет. пожалуйста, перейдите по этой ссылке http://stackoverflow.com/a/39336438/3636561 –

ответ

0

Используйте следующее:

Glide.with(mContext).load(productItem.getImg()).asBitmap().centerCrop().into(new SimpleTarget<Bitmap>(200, 200) { 
      @Override 
      public void onResourceReady(Bitmap arg0, GlideAnimation<? super Bitmap> arg1) { 
       // TODO Auto-generated method stub 
       if (arg0 != null) { 
        holder.imageViewModel.setImageBitmap(arg0); 
       } else { 
        holder.imageViewModel.setImageResource(R.drawable.ic_launcher); 
       } 
      } 
     }); 
+0

Все еще с той же проблемой, а также с помощью этого метода я не смогу кэшировать изображение? – user2934930