相机预览被拉伸或压缩

时间:2019-12-22 11:49:00

标签: java android camera qr-code surfaceview

我正在编写二维码扫描应用程序。我使用“相机”和“曲面”视图。但是我的相机拉长了。所以我找到了解决方案。这是我的代码。

 void setPreviewSize(boolean fullScreen) {
        Display display = mContext.getWindowManager().getDefaultDisplay();
        boolean widthIsMax = display.getWidth() > display.getHeight();

        Camera.Size size = mCamera.getParameters().getPreviewSize();

        RectF rectDisplay = new RectF();
        RectF rectPreview = new RectF();

        rectDisplay.set(0, 0, display.getWidth(), display.getHeight());

        if (widthIsMax) {

            rectPreview.set(0, 0, size.width, size.height);
        } else {

            rectPreview.set(0, 0, size.height, size.width);
        }

        Matrix matrix = new Matrix();

        if (!fullScreen) {

            matrix.setRectToRect(rectPreview, rectDisplay,
                    Matrix.ScaleToFit.START);
        } else {

            matrix.setRectToRect(rectDisplay, rectPreview,
                    Matrix.ScaleToFit.START);
            matrix.invert(matrix);
        }

        matrix.mapRect(rectPreview);

        mPreview.getLayoutParams().height = (int) (rectPreview.bottom);
        mPreview.getLayoutParams().width = (int) (rectPreview.right);
    }

现在,图像看起来更好了,但是似乎有点压缩了。而且主要的问题是,在做出此决定之后,图像质量变得更差,并且某些qr码没有被扫描。我尝试了许多其他解决方案,但没有任何帮助。是否可以调节相机,以使图像不被拉长或压缩,同时图像质量保持良好。请帮帮我。

0 个答案:

没有答案