[英]Picasso error loading some images in recycler view
I using picasso to load some images in recycler view adapter but some images show it success loading but it's actually not displayed 我使用毕加索在回收器视图适配器中加载了一些图像,但是一些图像显示它已成功加载,但实际上未显示
Here is my image view 这是我的图像视图
<ImageView
android:id="@+id/news_main_imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:src="@drawable/image" />
the adapter code 适配器代码
if (holder instanceof NewsViewHolder) {
((NewsViewHolder) holder).newsTitleTextView.setText(currentArticle.getTitle().trim());
((NewsViewHolder) holder).newsDateTextView.setText(DateUtils.getDisplayDate(currentArticle.getPublishedAt(), context));
if (!currentArticle.getThumbnail().isEmpty()) {
((NewsViewHolder) holder).higherLevelSpace.setVisibility(View.VISIBLE);
((NewsViewHolder) holder).newsTitleTextView.setGravity(Gravity.CENTER_VERTICAL);
//Load the news image
Picasso.with(context)
.load(currentArticle.getThumbnail().trim())
.networkPolicy(NetworkPolicy.OFFLINE)
.into(((NewsViewHolder) holder).newsMainImageView, new Callback() {
@Override
public void onSuccess() {
((NewsViewHolder) holder).newsImageScrim.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
((NewsViewHolder) holder).newsImageScrim.setVisibility(View.GONE);
//Try again online if cache failed
Picasso.with(context)
.load(currentArticle.getThumbnail().trim())
.into(((NewsViewHolder) holder).newsMainImageView, new Callback() {
@Override
public void onSuccess() {
((NewsViewHolder) holder).newsImageScrim.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
((NewsViewHolder) holder).newsImageScrim.setVisibility(View.GONE);
Timber.e("Could not fetch image");
}
});
}
});
} else {
((NewsViewHolder) holder).higherLevelSpace.setVisibility(View.GONE);
((NewsViewHolder) holder).newsMainImageView.setVisibility(View.GONE);
((NewsViewHolder) holder).newsImageScrim.setVisibility(View.GONE);
}
So any one face this problem or have a solution for it 所以任何人都面临这个问题或有解决方案
You can use Glide instead its the best way to load images. 您可以改用Glide作为加载图像的最佳方法。
compile 'com.github.bumptech.glide:glide:3.7.0'
String imgUrl = "img.jpg";
ImageView imageView = (ImageView) view.findViewById(R.id.thumbnail);
Glide.with(mContext).load(imgUrl)
.thumbnail(0.5f)
.crossFade()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.