看看Bitmap ::
copyPixelsFromBuffer()的源(版本2.3.4_r1,上一次在Greppre上更新Bitmap的时间是在4.4之前)。
错误的措词尚不清楚,但是代码澄清了-
这意味着您的缓冲区被计算为没有足够的数据来填充位图的像素。这(可能)是因为它们使用缓冲区的剩余方法来计算缓冲区的容量,并考虑了其position属性的当前值。如果在调用copyFromPixels()之前在缓冲区上调用rewind(),则可能会看到运行时异常消失。我之所以说“可能”,是因为ByteBuffer
:: wrap()方法应该将位置属性值设置为零,从而消除了调用回绕的需要,但是从类似的问题以及我自己的经验明确地重置位置可以判断出这一点。
尝试
ByteBuffer buffer = ByteBuffer.wrap(os.toByteArray());buffer.rewind();bitmap_tmp.copyPixelsFromBuffer(buffer);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)