Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BitmapFactory.decodeByteArray是否返回尺寸无效的位图?_Java_Android_Bitmap - Fatal编程技术网

Java BitmapFactory.decodeByteArray是否返回尺寸无效的位图?

Java BitmapFactory.decodeByteArray是否返回尺寸无效的位图?,java,android,bitmap,Java,Android,Bitmap,我正在尝试使用android.graphics.BitmapFactory解码jpeg缓冲区(通过Camera.takePicture)。android文档中指出,decodeByteArray 没有引发异常,并且我得到一个宽度和高度无效的非空对象: android.graphics.Bitmap@41c7d960 [ mBuffer = ... mFinalizer = android.graphics.Bitmap$BitmapFinalizer@41ca20c0 mWidth = -1 m

我正在尝试使用android.graphics.BitmapFactory解码jpeg缓冲区(通过Camera.takePicture)。android文档中指出,
decodeByteArray

没有引发异常,并且我得到一个宽度和高度无效的非空对象:

android.graphics.Bitmap@41c7d960
[
mBuffer = ...
mFinalizer = android.graphics.Bitmap$BitmapFinalizer@41ca20c0
mWidth = -1
mHeight = -1
mDensity = 240
mLayoutBounds = null
mNativeBitmap = 1373749696
...
]
我的函数调用如下:

public Func(byte [] jpegBuffer) {
        try {
            mBitmap = android.graphics.BitmapFactory.decodeByteArray(jpegBuffer, 0, jpegBuffer.length);
        }
        catch (Exception e) {
            mLog.e("Problem during jpeg decompression: " + e.toString());
        }   
    }
发生了什么事?位图解码成功与否?如果是,为什么其尺寸无效?如果没有,为什么我没有收到空结果?

基本上,字段
mWidth
mHeight
(如Eclipse调试器所示)会被延迟地重新计算,并且以编程方式无法访问,这意味着它们默认为-1,直到分别调用
getWidth()
getHeight()

总之,android.Bitmap类可能会通过不更新调试器可见的一些私有字段来愚弄调试程序员