我不想将图片分配给来自ImageView
的网址JSON
。我想在RecyclerView
中存储已提取的数据。
我尝试了很多用户提出的方法,例如:
Picasso.with(recyclerItem.getContext()).load(news.getUrlImage()).into(holder.imageView);
,
try {
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(news.getUrlImage()).getContent());
holder.imageView.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
有和没有AsyncTask
,上述方法中没有人不起作用。
从NewsAdapter.java覆盖onBindViewHolder
方法(扩展RecyclerView.Adapter
类):
public void onBindViewHolder(MyViewHolder holder, int position) {
Log.i(TAG, "onBindViewHolder: START");
News news = newsList.get(position);
holder.title.setText(news.getTitle());
holder.author.setText(news.getAuthor());
holder.publishedDate.setText(news.getPublishedAt());
Picasso.with(recyclerItem.getContext()).load(news.getUrlImage()).into(holder.imageView);
TextView
已正确分配并且运行良好,只有ImageView
会造成麻烦。
是否有人知道如何才能正常使用?
答案 0 :(得分:0)
您可以使用Picasso或Glide等图片加载库将图片加载到ImageView
。它们都有类似的API。
一个例子:
public void onBindViewHolder(MyViewHolder holder, int position) {
String imgUrl = mData.get(position).getImageUrl;
//Picasso
Picasso.with(mContext).load(imgUrl).into(holder.mImageView);
//Glide
Glide.with(mContext).load(imgUrl).into(holder.mImageView);
}