Array de imágenes de mapa de bits desde RecyclerView a otra actividad con posición
Quiero obtener una imagen única de una matriz de mapas de bits de RecyclerView y mostrarla en mi actividad de detalles
[Clase adaptadora de RecyclerView]
‘
public void onBindViewHolder(@NonNull viewholder holder, @SuppressLint(“RecyclerView”) int position) {
modelo modelo= lista.get(position);
byte[] imagen=lista.get(position).getImagen();
Bitmap mapaBits= BitmapFactory.decodeByteArray(imagen,0,imagen.length);
holder.imageView.setImageBitmap(mapaBits);
holder.t1.setText(lista.get(position).getMarca());
holder.t2.setText(lista.get(position).getModelo());
holder.t3.setText(lista.get(position).getAño());
holder.t4.setText(lista.get(position).getPrecio());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent= new Intent(contexto,detalleCoche.class);
intent.putExtra("im",mapaBits);
intent.putExtra("detallemarca", String.valueOf(lista.get(position).getMarca()));
intent.putExtra("detallemodelo",String.valueOf(lista.get(position).getModelo()));
intent.putExtra("detalleano",String.valueOf(lista.get(position).getAño()));
intent.putExtra("detalleprecio",String.valueOf(lista.get(position).getPrecio()));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
contexto.startActivity(intent);
}
});
[Actividad de detalles]
ImageView vistaImg;
TextView t1,t2,t3,t4;
Bitmap mapaBits;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detalleCoche);
vistaImg=findViewById(R.id.imgDetalle);
t1=findViewById(R.id.nombreCoche);
t2=findViewById(R.id.modeloCoche);
t3=findViewById(R.id.añoCoche);
t4=findViewById(R.id.precioCoche);
adaptadorLista adaptadorLista;
Bitmap mapaBits= getIntent().getParcelableExtra("im");
vistaImg.setImageBitmap(mapaBits);
t1.setText(getIntent().getStringExtra("detallemarca"));
t2.setText(getIntent().getStringExtra("detallemodelo"));
t3.setText(getIntent().getStringExtra("detalleano"));
t4.setText(getIntent().getStringExtra("detalleprecio"));
introduce el código aquí
davy.ai
Para obtener una sola imagen del array de bitmaps en la vista de reciclaje y mostrarla en la actividad de detalle, primero debes recuperar el bitmap seleccionado del método onBindViewHolder del adaptador y pasarlo a la actividad de detalle utilizando el método Intent.putExtra().
En la actividad de detalle, recupera el bitmap utilizando el método getIntent().getParcelableExtra() y establece el bitmap en el ImageView utilizando el método setBitmap().
Aquí tienes el código de ejemplo para la clase del adaptador de la vista de reciclaje:
Y aquí está el código para la actividad de detalle:
Asegúrate de agregar los archivos de diseño XML necesarios y los atributos para mostrar la imagen y el texto en la actividad de detalle.