给定某个位图时,startActivity()会失败

时间:2012-12-09 17:34:16

标签: android android-intent bitmap

考虑a,b,c,d,e是所有非空的字符串 我有一个名为 data 的对象,它包含图像和prev_image的URL。

有一项名为Games的活动,导致“MyActivity”。

我的问题是这样的:
如果我试图“putextra”两个位图,我最终在“游戏”,没有给出错误,没有例外,没有任何东西。 如果我注释掉我将“image”添加到包中的行,那么一切正常。 但我需要在以后的活动中使用图像。所以我必须在那里。 我尝试缩小它但它没有帮助,它似乎不是一个内存问题,但...... 我错了:)

Bitmap temp = BitmapFactory.decodeStream((new URL(data.getString("image"))).openStream());
image = image = Bitmap.createScaledBitmap(image,300,300,true);

temp = BitmapFactory.decodeStream((new URL(data.getString("image"))).openStream());
prev_image = Bitmap.createScaledBitmap(image,300,300,true);

temp.recycle();

Intent intent = new Intent(MyActivity.this,NextActivity.class);
intent.putExtra("a",a);
intent.putExtra("b",b);
intent.putExtra("c",c);
intent.putExtra("d",d);
intent.putExtra("e",e);
intent.putExtra("image",image);
intent.putExtra("prev_image",prev_image);
startActivity(intent);

非常感谢任何帮助。

编辑:

我想我会添加用于我的应用的解决方案 我最终做的是将位图保存为文件,只是将URI传递给活动之间的文件,只加载需要它们的活动中的位图。
当然,最终会删除文件。

1 个答案:

答案 0 :(得分:0)

可以在意图中发送的数据的最大大小。你的位图可能超过了它。它大概是50Kb