diff --git a/lib/src/main/java/com/king/zxing/DefaultCameraScan.java b/lib/src/main/java/com/king/zxing/DefaultCameraScan.java index ba10408..466a8df 100644 --- a/lib/src/main/java/com/king/zxing/DefaultCameraScan.java +++ b/lib/src/main/java/com/king/zxing/DefaultCameraScan.java @@ -155,9 +155,19 @@ public class DefaultCameraScan extends CameraScan { LogUtils.d(String.format("screenSize: %d * %d",mScreenWidth,mScreenHeight)); //因为为了保持流畅性和性能,限制在1080p,在此前提下尽可能的找到屏幕接近的分辨率 if(mScreenWidth < mScreenHeight){ - mTargetSize = new Size(mScreenWidth,mScreenWidth / 9 * 16); + float ratio = mScreenWidth / (float)mScreenHeight; + if(ratio > 0.7){//一般应用于平板 + mTargetSize = new Size(mScreenWidth,mScreenWidth / 3 * 4); + }else{ + mTargetSize = new Size(mScreenWidth,mScreenWidth / 9 * 16); + } }else{ - mTargetSize = new Size(mScreenHeight / 9 * 16, mScreenHeight); + float ratio = mScreenHeight / (float)mScreenWidth; + if(ratio > 0.7){//一般应用于平板 + mTargetSize = new Size(mScreenHeight / 3 * 4, mScreenHeight); + }else{ + mTargetSize = new Size(mScreenHeight / 9 * 16, mScreenHeight); + } } mBeepManager = new BeepManager(mContext); @@ -237,7 +247,8 @@ public class DefaultCameraScan extends CameraScan { mCameraProviderFuture.addListener(() -> { try{ - Preview preview = mCameraConfig.options(new Preview.Builder()); + Preview preview = mCameraConfig.options(new Preview.Builder() + .setTargetResolution(mTargetSize)); //相机选择器 CameraSelector cameraSelector = mCameraConfig.options(new CameraSelector.Builder()); diff --git a/lib/src/main/java/com/king/zxing/analyze/AreaRectAnalyzer.java b/lib/src/main/java/com/king/zxing/analyze/AreaRectAnalyzer.java index 6024cc5..9370b44 100644 --- a/lib/src/main/java/com/king/zxing/analyze/AreaRectAnalyzer.java +++ b/lib/src/main/java/com/king/zxing/analyze/AreaRectAnalyzer.java @@ -41,7 +41,6 @@ public abstract class AreaRectAnalyzer extends ImageAnalyzer { @Nullable @Override public Result analyze(byte[] data, int width, int height) { - LogUtils.d(String.format("width:%d, height:%d",width,height)); if(mDecodeConfig != null){ if(mDecodeConfig.isFullAreaScan()){ //mDecodeConfig为空或者支持全区域扫码识别时,直接使用全区域进行扫码识别