Far*_*and 3 android picasso android-recyclerview
我开发了一个简单的RSS阅读器,我想在回收站视图中显示每个帖子的标题和图像.
我可以使用Picasso从ArrayList加载图像:
public void onBindViewHolder(ViewHolder viewHolder, int i) {
RssItem item = rssItems.get(i);
Picasso.with(F.context).load(item.imageLink).into(viewHolder.postImage);
viewHolder.postTitle.setText(item.title);
viewHolder.postAuthor.setText(item.postWriter);
viewHolder.postDate.setText(item.pubDate);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用!我用一个网址测试Picasso并且它可以正常工作,但是当设置图像链接在数组列表中时,它不起作用.
你看过这篇文章吗?这是关于RecyclerView.作者在适配器中使用Picasso.
@Override
public void onBindViewHolder(FeedListRowHolder feedListRowHolder, int i) {
FeedItem feedItem = feedItemList.get(i);
Picasso.with(mContext).load(feedItem.getThumbnail())
.error(R.drawable.placeholder)
.placeholder(R.drawable.placeholder)
.into(feedListRowHolder.thumbnail);
feedListRowHolder.title.setText(Html.fromHtml(feedItem.getTitle()));
}
Run Code Online (Sandbox Code Playgroud)
当我想使用扩展 RecyclerView.Adapter 和 RecyclerView.ViewHolder 中的 API 从 URL 加载图像时,我遇到了同样的问题。
首先,您必须检查 URL 是否为空或 null,然后使用 Picasso 加载它。
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
RssItem item = rssItems.get(i);
if(item.imageLink!=null && !item.imageLink.isEmpty()) {
Picasso.with(F.context)
.load(item.imageLink)
.placeholder(R.drawable.default_placeholder)
.error(R.drawable.error_placeholder)
// To fit image into imageView
.fit()
// To prevent fade animation
.noFade()
.into(viewHolder.postImage);
} else {
viewHolder.postImage.setImageDrawable(ContextCompat.getDrawable(F.context,R.drawable.default_placeholder));
}
viewHolder.postTitle.setText(item.title);
viewHolder.postAuthor.setText(item.postWriter);
viewHolder.postDate.setText(item.pubDate);
}
Run Code Online (Sandbox Code Playgroud)
最后你必须知道viewHolder.postImage它是如何被发现的。它可能为 null 或未正确按 id 找到视图。
| 归档时间: |
|
| 查看次数: |
19680 次 |
| 最近记录: |