做项目时涉及到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);
时间: 2024-10-11 05:23:42