Activity1.class
OnCreate
byte[] mImageByte=getIntent().getExtras().getByteArray(Constant.BYTE_IMAGE);
Bitmap bmp = BitmapFactory.decodeByteArray(mImageByte, 0, mImageByte.length);
mImageView.setImageBitmap(bmp);
Activity2.class
onClickListener.
当我点击{{1}}时显示错误:FAILED BINDER TRANSACTION !!!
请。救救我!
答案 0 :(得分:2)
我认为原因是你试图将Bitmap作为额外的Intent。虽然它在理论上是可行的,但我认为图像的大小限制了这种可能性。
如果您想将图片传递给其他活动,请先
如果这很困难,请尝试使用Singleton将Bitmap临时存储在内存中。
以下是如何将其保存到磁盘。
首先在清单中添加权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
则...
File file = new File(Environment.getExternalStorageDirectory() + "imageBitmap" + ".png");
FileOutputStream fOut = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();
现在将文件名发送到下一个活动。
mIntent.putExtra("filename", "imageBitmap");
在下一个活动中,重新创建位图。
String fName = getIntent().getStringExtra("filename");
String path = Environment.getExternalStorageDirectory() + fName + ".png"
Bitmap bm = BitmapFactory.decodeFile(path);
希望这有帮助。