我正在编写二维码扫描应用程序。我使用“相机”和“曲面”视图。但是我的相机拉长了。所以我找到了解决方案。这是我的代码。
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码没有被扫描。我尝试了许多其他解决方案,但没有任何帮助。是否可以调节相机,以使图像不被拉长或压缩,同时图像质量保持良好。请帮帮我。