Glide在加载时丢失了一些图像

时间:2016-05-12 06:04:17

标签: android android-glide

我有一个RecylerView,其中每个项目都包含Iamge,加载图像我正在使用Glide。我面临的问题是列表中的某些图像没有显示,并且在我的onException回调中,对于这些图像,Exception和model都为null。

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"/>

1 个答案:

答案 0 :(得分: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);
                }
            }
        });