ANDROID STUDIO:使用Camera API拍照 - >将此图片发送到另一个活动

时间:2015-06-13 09:36:58

标签: java android image android-studio bitmap

使用Camera API拍照后,此图片会显示在屏幕上/此活动中。我想将覆盖整个屏幕的图片发送到另一个名为PictureEditor的活动。在那里,我将添加可以编辑图片的功能。

  // Code in MainActivity
  mCamera.takePicture(null, null, mPicture);
  Intent i = new Intent(getApplicationContext(), PictureEditor.class);
  Bitmap b = getBitmapFromView(mPreview);
  ByteArrayOutputStream bs = new ByteArrayOutputStream();
  b.compress(Bitmap.CompressFormat.PNG, 50, bs);
  i.putExtra("byteArray", bs.toByteArray());
  startActivity(i);

在PictureEditor中,我在OnCreate中有这段代码。

  // Code in PictureEditor
  if(getIntent().hasExtra("byteArray")) {
  ImageView previewThumbnail = new ImageView(this);
  Bitmap b = BitmapFactory.decodeByteArray(
               getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);
        previewThumbnail.setImageBitmap(b);
    }

如何在PictureEditor中检索此图片,并且此图片是此活动中屏幕上唯一可见的内容? (解码位图并将其显示为屏幕上的图像)

感谢各种帮助!

2 个答案:

答案 0 :(得分:0)

// Code in PictureEditor
  if(getIntent().hasExtra("byteArray")) {
  ImageView previewThumbnail = new ImageView(this);
  Bitmap b =(Bitmap) getIntent().getParcelableExtra("byteArray");
        previewThumbnail.setImageBitmap(b);
    }

但是如果你在活动之间发送信息。此信息的大小不能超过1 MB。你必须压缩你的位图。

答案 1 :(得分:0)

而不是startActivity调用startActivityForResult,而是通过同一活动中的onActivityResult回调方法从捆绑中获取图片,并将图片传递给新的Activity。< / p>