我正在尝试将通过本地网络发送的图像显示到我的Android设备。图像通过tcp从计算机发送到我的Android设备。图像是png。发送的数据是png的字节数组流,它被打包成google protobuf消息。在android方面,当接收数据时,它被读入一个字节数组,然后该数组被赋予BitmapFactory.decodeByteArray()
。但是,大约90%的时间都会返回null。这只发生在一个真实的设备上,但我现在只能在htc上测试令人难以置信的。我已经在android sdk模拟器上尝试了这个,我可以100%获得我的图像。
与BitmapFactory在线相关的其他问题一直与使用文件流有关,其中解码不是获取整个数据,但我还没有找到任何解决方案,以便开发人员确定整个数据是收到了,它只发生在真实的设备上。
decodeByteArray()
是否存在某些我不知道的用法?我传入的byte[]
只是文件本身。
编辑:感谢Brian Cooley的第二次见解。
我太快判断错误可能在decodeByteArray()中。如果有人遇到过这个问题,请确保确保您拥有完整的数据。我假设我的字节流很好。因此,首先快速区分您发送和接收的数据,并确保获得应有的数据。
答案 0 :(得分:0)
您可能尝试的一件事是将原始字节写入SD卡上的文件并在计算机上查看,就像this question建议的那样
这将显示问题是在文件中还是在代码中。由于您没有在模拟器中看到问题,我猜测它与通过手机下载数据有关。