我正在解码来自ByteBuffer的数据,如:BitmapFactory.decodeByteArray(inputData.array(), 0, inputData.limit());
相同的代码适用于较旧的Android(例如4.3),但在Android 7上,我收到错误"D/skia (14391): --- SkImageDecoder::Factory returned null"
,返回的图片为空。
从jpg文件正确加载图像数据。 ByteBuffer也有正确的位置和限制。
我阅读了与BitmapFactory.decodeByteArray相关的大部分类似问题,但似乎没有一个类似于我的场景。
答案 0 :(得分:0)
似乎如果我首先将ByteBuffer中的数据读入数组然后提供此数据,BitmapFactory.decodeByteArray
能够正确解码图像。我错过了支持数组中ByteBuffer数据实际开始的偏移量。
所以正确的代码是:
Bitmap im = BitmapFactory.decodeByteArray(inputData.array(), inputData.arrayOffset(), inputData.limit());