📌  相关文章
📜  android jaca 如何在 recyclerview 适配器中传递 imageurl - C# (1)

📅  最后修改于: 2023-12-03 14:39:07.828000             🧑  作者: Mango

在 RecyclerView 适配器中传递 ImageUrl

RecyclerView 是 Android 中用于展示大量数据的高效组件,它能够实现很多一般的列表用例,如通讯录、提醒事项等等。其中,一个常见的用例就是通过网络请求获取数据的图片列表,并在 RecyclerView 中进行展示。以下是实现这一功能的步骤:

  1. 在 RecyclerView.Item 布局中添加 ImageView 组件,并设置宽高度;
  2. 在 RecyclerView 的 Adapter 中增加一个 ImageUrl 数组,用于存储图片的 Url 地址;
  3. 在 onBindViewHolder() 方法中,将图片的 Url 地址赋值给对应的 ImageView 组件;
  4. 使用异步图片加载库 Picasso 或 Glide 来加载图片,并设置默认图片和错误图片。

下面是实现以上步骤的代码片段:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

  private String[] imageUrlList;

  public MyAdapter(String[] imageUrlList) {
    this.imageUrlList = imageUrlList;
  }

  public static class MyViewHolder extends RecyclerView.ViewHolder {
    public ImageView imageView;

    public MyViewHolder(View itemView) {
      super(itemView);
      imageView = itemView.findViewById(R.id.image_view);
    }
  }

  @Override
  public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
    return new MyViewHolder(v);
  }

  @Override
  public void onBindViewHolder(MyViewHolder holder, int position) {
    String imageUrl = imageUrlList[position];
    Context context = holder.imageView.getContext();

    Picasso.get()
        .load(imageUrl)
        .placeholder(R.drawable.placeholder)
        .error(R.drawable.error)
        .into(holder.imageView);
  }

  @Override
  public int getItemCount() {
    return imageUrlList.length;
  }
}

注意:在代码片段中,使用了 Picasso 异步图片加载库来加载图片,如果您想使用 Glide 异步图片加载库,请替换上述片段中的 Picass 相关代码。同时,您也需要在应用程序的 Build.gradle 文件中添加 Picasso 或 Glide 库的依赖。