Java 如何在kitkat android中将图像从一个活动发送到另一个活动?

Java 如何在kitkat android中将图像从一个活动发送到另一个活动?,java,android,image,send,android-4.4-kitkat,Java,Android,Image,Send,Android 4.4 Kitkat,在第一项活动中: Intent i = new Intent(FirstActivity.this, SecondActivity.class); ByteArrayOutputStream stream = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] bytes = stream.toByteArray(); i.putExtra("image", byt

在第一项活动中:

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
i.putExtra("image", bytes);
startActivity(i);
在第二项活动中:

byte[] byteArray = extras.getByteArray("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

if (bmp != null) {         
    iv_1.setImageBitmap(bmp);
}
这适用于所有设备和版本。但它对Kitkat不起作用,为什么?
如何解决kitkat中的问题?

通过intent传递如此大的文件不是一个好做法。这将减缓开展新活动的进程


尝试对图像进行静态引用,并在下一个活动中使用它。完成后,只需将其设置为
null

创建一个带有
映射的单例类,该映射将保留所有需要的图像,并通过意图只发送它们的键名。

将位图从一个活动传递到另一个活动对性能没有好处


只需尝试将位图保存在内存中,并将位图的“路径”发送到另一个活动,然后只需使用
BitmapFactory.decodeFile(路径名)方法从路径获取位图。

在第一个活动中,将imageview转换为位图

imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
在第二个活动中

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

kitkat也在工作。

为什么不能暂时保存图像并发送路径来代替此?我希望捕获的图像和另一个图像(两个图像)一次传递到下一个活动。我如何传递。Yoy可以将两个图像保存在某个外部文件夹中并传递名称。如果数字是特定的,您可以将图像名称(如temp_1、temp_2)fex,我希望捕获的图像和另一个图像一次传递到下一个活动。我如何传递。您也可以将捕获的图像原样传递到下一个活动。如果am do like上述代码,则显示绑定事务失败。如果am do like my question,则仅在kitkat中直接关闭。我怎样才能解决这个问题