这里是通过意图传递和获取图像的代码,
Intent intent = new Intent(this, PostVideoTagLocation.class);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.index);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent intent2 = new Intent();
intent2.putExtra("picture", byteArray);
startActivityForResult(intent,1);
setResult(RESULT_OK, intent2);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) findViewById(R.id.add_photo);
image.setImageBitmap(bmp);
}
}
答案 0 :(得分:0)
在PostVideoTagLocation的onCreate方法中,你可以简单地从创建活动已经过的字节数组创建一个位图。
getIntent()方法导致用于创建此活动的intent,其中包含一个包含图片bytearray的包。
但是我不能完全确定在Intent传递的Bundle中存储可能很大的图像有多安全,所以我会谨慎使用它。
你可以使用Intents getByteArrayExtra()和参数" picture"当您设置额外内容时使用,然后只需使用BitmapFactorys decodeByteArray将其解码为位图。
您的代码看起来可能像这样
onCreate(Bundle bundle)..
byte[] rawBitmap = getIntent().getByteArrayExtra("picture");
Bitmap bitmap = BitmapFactory.decodeByteArray(rawBitmap)
并根据需要使用位图。
然而,我自己会将图像保存到临时文件中并故意传递,只是为了安全。
答案 1 :(得分:0)
在第一个 Activiy
上,您应该像这样呼叫第二个 Activiy
:
Intent intent = new Intent(PostVideoTagLocation.this, SecondActivity.class);
startActivityForResult(intent, 1111);
然后在第二个 Activity
上,当您想要将图片发送到第一个 Activiy
时,您应该致电:
Intent intent = new Intent();
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.index);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
intent.putExtra("picture", byteArray);
setResult(RESULT_OK, intent);
finish();
最后在第一个 Activity
中将此代码写在onActivityResult
上:
if(requestCode == 1111){
Bundle extras = data.getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
mImageView.setImageBitmap(bmp);
}
它应该工作(我测试过)。希望它能帮到你!
[编辑] 您可以将位图保存到文件中,只需将文件路径放到Intent