0

我正在尝试显示通过本地网络发送到我的 android 设备的图像。图像通过 tcp 从计算机发送到我的 android 设备。图片是png的。传过来的数据是png的字节数组流,打包成google protobuf消息。在android端,在接收到数据的时候,会读入一个字节数组,然后将该数组交给BitmapFactory.decodeByteArray(). 但是,这大约 90% 的时间返回 null。这仅发生在真实设备上,但我目前只能在令人难以置信的 htc 上进行测试。我已经在 android sdk 模拟器上试过这个,我可以 100% 地得到我的图像。

与在线 BitmapFactory 相关的其他问题一直与使用文件流有关,其中解码没有获得全部数据,但我还没有找到任何解决方案,以便开发人员确定是否收到了全部数据,并且它只发生在真实设备上。

是否有某种我不知道的用法decodeByteArray()byte[]我传入的只是文件本身。

编辑:多亏了 Brian Cooley 的第二个见解。

我太快判断错误可能在 decodeByteArray() 中。如果有人遇到这个问题,请确保您确保您拥有完整的数据。我错误地假设我的字节流很好。所以首先对你发送和接收的数据做一个快速的比较,并确保你得到了你应该得到的。

4

1 回答 1

0

您可能会尝试的一件事是将原始字节写入 SD 卡上的文件并在您的计算机上查看它,就像为这个问题所建议的那样

这将揭示问题是在文件中还是在您的代码中。由于您在模拟器中没有看到问题,我的猜测是它与通过电话下载数据有关。

于 2011-03-22T10:56:24.333 回答