【问题标题】:Place image in a RecyclerView [closed]将图像放入 RecyclerView [关闭]
【发布时间】:2021-01-19 16:51:10
【问题描述】:

我有一个 RecyclerView 及其各自的适配器,它由一个带有 ImageView 和一些 TextView 的布局组成,当我传递数据列表时,我得到了必须作为 URI 放在 String 中的图像,我不知道如何将图像的字符串传递给 ImageView 的 Uri:

public class AdapterProductos extends RecyclerView.Adapter<AdapterProductos.ViewHolderProducto> {

    ArrayList<Producto> listProductos;

    public AdapterProductos(ArrayList<Producto> listProductos) {
        this.listProductos = listProductos;
    }

    //CONECTAR EL LAYOUT A EL ADAPTADOR
    @NonNull
    @Override
    public ViewHolderProducto onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_list_producto, null, false);
        return new ViewHolderProducto(view);
    }

    //OBTENER LOS DATOS
    @Override
    public void onBindViewHolder(@NonNull ViewHolderProducto holder, int position) {
        holder.nombre.setText(listProductos.get(position).getNombre());
        holder.descrip.setText(listProductos.get(position).getDescripcion());
        holder.valor.setText(listProductos.get(position).getValor());
        //holder.imagen.setImageURI(listProductos.get(position).getImagen());
    }

    //OBTENER EL TAMAÑO DE LA LISTA
    @Override
    public int getItemCount() {
        return listProductos.size();
    }

    //ENLAZAR LOS ELEMENTOS VISUALES
    public class ViewHolderProducto extends RecyclerView.ViewHolder {

        TextView nombre, descrip, valor;
        ImageView imagen;
        public ViewHolderProducto(@NonNull View itemView) {
            super(itemView);
            imagen = itemView.findViewById(R.id.imagen_itemProducto);
            nombre = itemView.findViewById(R.id.nombre_itemProducto);
            descrip = itemView.findViewById(R.id.descrip_itemProducto);
            valor = itemView.findViewById(R.id.valor_itemProducto);
        }
    }
}

Editado: 如何在这部分实现 Uri.parse (image)?:

    public void onBindViewHolder(@NonNull ViewHolderProducto holder, int position) {
    holder.nombre.setText(listProductos.get(position).getNombre());
    holder.descrip.setText(listProductos.get(position).getDescripcion());
    holder.valor.setText(listProductos.get(position).getValor());
}

因为要得到图像我必须写:

holder.imagen.setImageURI (listProductos.get (position) .getImage ());

【问题讨论】:

  • 你想使用它的 url 显示图像吗?
  • 对不起,我指的是转换为字符串的 URI。

标签: java firebase android-studio android-recyclerview


【解决方案1】:

当你想添加图片 URI 时使用静态方法Uri.parse("your image uri") 当你想添加图片 URL 时,你可以在 android 中使用 glide 或 picasso 库 毕加索:

Picasso.get()
  .load(url)
  .resize(50, 50)
  .centerCrop()
  .into(imageView)

滑行:

Glide
.with(context)
.load(url)
.into(imagen);

在使用之前不要忘记添加依赖库。

根据我的经验,我更喜欢由谷歌开发的快速滑行

dependencies {
 implementation 'com.squareup.picasso:picasso:2.71828' // Picasso library

这个添加滑翔库

 repositories {
      google()
      jcenter()
    }

   dependencies {
      implementation 'com.github.bumptech.`enter code here`glide:glide:4.11.0'
      annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
    }

【讨论】:

    【解决方案2】:

    我个人会推荐你使用 Glide library(link).
    它是一个强大的图像加载工具,而且非常易于使用。
    要根据需要加载图像,您只需要这样写:

    Glide
    .with(context)
    .load(url)
    .into(imagen);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 2016-05-26
      • 2017-02-17
      • 2021-10-05
      相关资源
      最近更新 更多