Como passar imagens entre Activities?

28/01/2016

2

Tenho uma lista (RecyclerView) com dois textos e duas imagens em cada item. No onClick consigo passar os textos porém não as imagens. Já tentei de várias formas e o que cheguei mais perto foi com o seguinte:

Passando...
@Override
public void onItemClick(View view, int position) {

TextView txt = (TextView) view.findViewById(R.id.nome_cientifico);
String str = txt.getText().toString();

TextView txt1 = (TextView) view.findViewById(R.id.nome_comum);
String str1 = txt1.getText().toString();

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.slide1);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] jovens = stream.toByteArray();

Bitmap bmp1 = BitmapFactory.decodeResource(getResources(), R.drawable.slide3);
ByteArrayOutputStream stream1 = new ByteArrayOutputStream();
bmp1.compress(Bitmap.CompressFormat.JPEG, 100, stream1);
byte[] adultas = stream1.toByteArray();

Intent intent=new Intent(getActivity(), Detalhes.class);

intent.putExtra("CIENTIFICO", str);

intent.putExtra("COMUM", str1);

intent.putExtra("IMAGEMJ", jovens);

intent.putExtra("IMAGEMA", adultas);

startActivity(intent);

}

Recebendo....

Intent intent = getActivity().getIntent();
Bundle extras = getActivity().getIntent().getExtras();
View rootView = inflater.inflate(R.layout.fragment_detalhes, container, false);

if (intent != null && intent.hasExtra("CIENTIFICO")) {

mMato = intent.getStringExtra("CIENTIFICO");
((TextView) rootView.findViewById(R.id.textView1)).setText(mMato);

mMato1 = intent.getStringExtra("COMUM");
((TextView) rootView.findViewById(R.id.textView2)).setText(mMato1);

byte[] byteArray = extras.getByteArray("IMAGEMJ");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) rootView.findViewById(R.id.imageView1);
image.setImageBitmap(bmp);

byte[] byteArray1 = extras.getByteArray("IMAGEMA");
Bitmap bmp1 = BitmapFactory.decodeByteArray(byteArray1, 0, byteArray1.length);
ImageView image1 = (ImageView) rootView.findViewById(R.id.imageView2);
image1.setImageBitmap(bmp1);
}

O meu problema é com a imagem R.drawable.slide1 e R.drawable.slide3 Passando assim elas ficam fixas para cada item clicado e não passa as imagens referentes ao item.
Responder

Posts

01/02/2016

Ronaldo Filho

Grande boa tarde,

Você pode abrir na outra activity a imagem do mesmo jeito que abriu na activity anterior, você pode passar id da imagem pelo putExtra para abrir ela na outra do mesmo modo que abre na primeira.
Responder