将图像视图从一个活动发送到另一个活动

时间:2013-07-11 11:04:24

标签: android image android-intent imageview

我试图将一些图像视图从一个活动发送到另一个活动,我还看到了与此类似的其他问题以及关于将imageview的ID从一个活动发送到另一个活动的建议,但在我的情况下差异我正在发送多个图像视图,并且这些图像视图也是从更大的图像视图中动态创建的, 即我正在通过使用更大的imageview创建12个小图像视图      Bitmap resized=Bitmap.createBitmap(bmp, 0, 0, width, height);以这种方式组合所有这些组合会让我回到最原始的更大的图像视图, 并希望将它们全部传递给下一个活动。 因此,我想要一些关于我正在遵循的程序的建议,以及如何以更好的方式做到这一点。 谢谢!

  • 编辑:我正在使用相机拍摄照片,然后先将其分配到某个图像视图,然后我想将此图像视图分成12个小部分并动态分配到12个图像视图,并显示每个在下一次活动中明显地显示出来。

2 个答案:

答案 0 :(得分:1)

您永远不应该直接发送位图 - 只需将URI或URL或文件名传递给下一个活动并从那里加载...

答案 1 :(得分:1)

我还要求实施类似的案例。

首先,您无法通过Intents发送大位图对象。它崩溃了应用程序,因为Intents,我认为,它具有较小的容量,如1mb。

您有以下选项:

1 - 通过附加内容发送图像文件路径。

2 - 在静态字段中保存图像文件路径,并在其他活动中读取它。

3 - 将位图保存到文件并使用选项(1,2)发送其路径并删除新活动中的图像文件。

4 - 将图像位图放在位图的静态arraylist中,然后在其他活动中读取它。

5 - 将图像文件名放在字符串的静态arraylist中,然后在其他活动中读取它。

基本上,您必须在新活动中重新创建它们或将它们保存在静态字段中,然后在那里阅读。

也许你可以实现更复杂的解决方案,比如 如果应用程序具有SD卡写访问权限,则将其写入文件 否则使用静态arraylist将其保存在内存中。

我所做的是,当PictureCallback获取图像数据时,我将其保存在SD卡上并返回其他活动的路径。