一、问题现象
在项目中使用Camera2自定义相机拍照,在其他手机上没有问题、在华为P40上、相机预览出现绿屏,绿屏如下所示
二、问题原因
预览设置高宽参数不符合相机高宽的话就会有绿条
原来的设置代码如下
imageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, 2);
三、问题解决
调整设置的高度和宽度即可解决问题。width和height为预览的imageView宽和高
//华为P40需要做特殊适配,像素太高导致绿屏 if ("ANA-AN00".equals(android.os.Build.MODEL) || largest.getWidth() > 4160) { imageReader = ImageReader.newInstance(width, height, ImageFormat.JPEG, 2); } else { imageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, 2); }