如何将图像从url到imageView再到RecyclerView

时间:2017-01-12 19:51:52

标签: java android

我不想将图片分配给来自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会造成麻烦。

是否有人知道如何才能正常使用?

1 个答案:

答案 0 :(得分:0)

您可以使用PicassoGlide等图片加载库将图片加载到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);
}