Activity之间传递数据之Bitmap
2015-05-10 14:17 阅读(219)

做项目时涉及到Activity之间传Bitmap,查看Bitmap实现了Parcelable,所以就把Bitmap放到bundle里,在480X800分辨率的手机测试正常,换到红米720X1280分辨率的手机就死机了,Debug发现就是传递Bitmap引起的,在网上查了相关的资料说不能直接传递40K的图片,于是把Bitmap转成Byte传递就正常了,当然也可以把Bitmap保存为临时图片,再传递文件路径。



传Byte的代码如下:

Intent intent=new Intent(this,TwoActivity.class);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte [] bitmapByte =baos.toByteArray();
intent.putExtra("bitmap", bitmapByte);
startActivity(intent);

另个Activity取数据:

byte [] bis=intent.getByteArrayExtra("bitmap");  
Bitmap bitmap=BitmapFactory.decodeByteArray(bis, 0, bis.length);