【发布时间】:2011-03-22 10:08:36
【问题描述】:
我正在尝试显示通过本地网络发送到我的 android 设备的图像。图像通过 tcp 从计算机发送到我的 android 设备。图片是png的。传过来的数据是png的字节数组流,打包成google protobuf消息。在android端,接收到数据时,读入一个字节数组,然后将该数组交给BitmapFactory.decodeByteArray()。但是,这大约 90% 的时间返回 null。这仅发生在真实设备上,但我目前只能在令人难以置信的 htc 上进行测试。我已经在 android sdk 模拟器上试过这个,我可以 100% 的得到我的图像。
与在线 BitmapFactory 相关的其他问题一直与使用文件流有关,其中解码无法获取全部数据,但我尚未找到任何解决方案,以便开发人员确定数据的全部是收到了,而且它只发生在真实的设备上。
decodeByteArray() 有什么我不知道的用法吗?我传入的byte[] 只是文件本身。
编辑:感谢 Brian Cooley 的第二次洞察。
我判断错误可能在 decodeByteArray() 中太快了。如果有人遇到这个问题,请确保您确保您拥有完整的数据。我错误地假设我的字节流很好。因此,首先对您发送和接收的数据进行快速比较,并确保您得到了应有的数据。
【问题讨论】:
标签: android bitmapfactory