【问题标题】:Why does the Xoom crash when sending a bitmap from one activity to another using intents?使用意图将位图从一个活动发送到另一个活动时,为什么 Xoom 会崩溃?
【发布时间】:2013-02-05 15:00:06
【问题描述】:

在我的应用中,我截取当前屏幕的屏幕截图(使用view.getDrawingCache)并使用意图将其作为位图发送到另一个活动。

我已经在 Galaxy Note 1、HTC one v 和 Motorolla Xoom mz 604 平板电脑(10.1")上进行了测试。在前两个设备上,代码运行良好。但在 Xoom 平板电脑上,代码不起作用:平板电脑开始等待很长时间,然后应用崩溃。

这背后的原因是什么?

【问题讨论】:

  • 可能是因为“OOM”。它在日志中显示什么?尝试使用 getter setter 方法或静态位图。如果您的位图尺寸很大(分辨率),也要对其进行采样。

标签: android bitmap xoom


【解决方案1】:

屏幕截图的位图在平板电脑上可能会变得非常大,因为屏幕分辨率可能更高。问题可能是内存问题。为了克服这个问题,您可以将位图写入临时文件并将文件的路径发送到活动。

或者,如果您要启动的活动在同一个应用程序中,您可以使用全局变量来保存位图。

【讨论】:

  • 我使用了一个静态变量来解决这个问题。谢谢你的帮助 muhoweb
【解决方案2】:

我的问题是因为OutOfMemoryError: bitmap size exceeds VM budget

要摆脱这个问题,您可以尝试创建一个静态变量,然后在第二个活动中访问,而不是将位图发送到意图中。

您可以将位图保存在内存中,并在第二个活动中发送该位图的路径。

所以请在日志中发布更多内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多