-2

So I have an app with a button that opens the camera, takes a picture, and then shows it on screen. But I don't how to make it show up in a different activity. Help would be very much appreciated. I have had this problem for two weeks, and nothing I tried has worked.

Bodie
  • 3
  • 2
  • 1
    This will definitely help you. https://stackoverflow.com/a/5991757/2470770 – lib4backer Jan 02 '18 at 15:55
  • "I have had this problem for two weeks, and nothing I tried has worked." - Could you elaborate on this please? What have you tried and what hasn't worked? – PPartisan Jan 02 '18 at 15:56

1 Answers1

0

I'd strongly suggest passing the image across the Intent as a file (unless it is very small, in which case you could send the bitmap as an extra with intent.putExtra("data", bitmap)).

This method, in your camera activity, saves the image to a file:

public void saveImageToFile(Bitmap bmp) {
    String fn = "sent_image";
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    FileOutputStream fo = openFileOutput(fn, Context.MODE_PRIVATE);
    fo.write(bytes.toByteArray());
    fo.close();
}

Then use an intent to switch activities.

Intent intent = new Intent(this, YourSecondActivity.class);
startActivity(intent);

In your other activity:

Bitmap bitmap = BitmapFactory.decodeStream(context.openFileInput("sent_image"));

ImageView iv = (ImageView) findViewById(R.id.yourImageViewID);
iv.setImageBitmap(bitmap);

where context is either this or getActivity() in a fragment

Pinico
  • 74
  • 1
  • 1
  • 8