Android onpreviewframe:图像视图预览在平板电脑上显示绿色/粉色图像

Android onpreviewframe:图像视图预览在平板电脑上显示绿色/粉色图像,android,image-processing,android-camera,android-ui,Android,Image Processing,Android Camera,Android Ui,我需要从相机获取预览,并在Imageview上显示。。 代码如下所示 public void onPreviewFrame(byte[] data, Camera camera){ yuvimage = new YuvImage(data, parameters.getPreviewFormat(), width, height, null); yuvimage.compressToJpeg(new Rect(0,0,parameters.getPreviewSi

我需要从相机获取预览,并在Imageview上显示。。 代码如下所示

public void onPreviewFrame(byte[] data, Camera camera){
        yuvimage = new YuvImage(data, parameters.getPreviewFormat(), width, height, null);
        yuvimage.compressToJpeg(new Rect(0,0,parameters.getPreviewSize().width,parameters.getPreviewSize().height), 90, outstr);
        bmp = BitmapFactory.decodeByteArray(outstr.toByteArray(), 0, outstr.size());        
        camera.addCallbackBuffer(data);
    }
此代码工作正常,如果bmp传递到imageview,则它会在大多数设备上显示清晰的彩色图像,但在平板电脑上,它会显示绿色/粉色图像。。 如果使用surfaceview直接显示预览,则会在所有设备上显示清晰的颜色预览


任何建议都非常感谢。

如果图像看起来有点正确,但只是有一种奇怪的颜色,那么我会猜 问题在于图片格式。我首先尝试将parameters.getPreviewFormat更改为ImageFormat.NV21,看看这是否解决了问题


我以前使用过基本相同的代码,从来没有遇到过问题。尽管您应该将渲染推送到单独的线程,并且可能使用RenderScript来转换图片

我不知道你说的清晰的颜色是什么意思。颜色是否从红色变为蓝色?你能发布样本图片吗?另见