前景提要
我是使用 CameraX + ZXing 做个扫码工具的(自用)
做完之后发现别的手机都能用,就我自己的 1+7P 不行…
几经测试,发现是隐藏了 toolbar 导致 imageProxy 里的图片是花的
只有是否隐藏 Toolbar 的区别 <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>
如图,上面是预览界,下面的黑白图片是从 PlanarYUVLuminanceSource 里取的 val luminanceSource = PlanarYUVLuminanceSource(data, image.width, image.height, 0, 0, image.width, image.height, false) val pixels = luminanceSource.renderThumbnail() val bitmap = Bitmap.createBitmap(image.width / 2, image.height / 2, Bitmap.Config.ARGB_8888) bitmap.setPixels(pixels, 0, image.width / 2, 0, 0, image.width / 2, image.height / 2)
图一有 toolbar 情况图二没有
CameraX + ZXing 代码参考 -> [medium] ( https://medium.com/@msasikanth/qr-scanning-using-camerax-4757ed3687f8 )
小米 8 和另一部老手机都是可以的目前只在 1+7P OOS 上出了这个问题…
对图像这块不熟,不知道这是哪儿出的问题。