Android 如何在zxing中增加扫描区域大小

Android 如何在zxing中增加扫描区域大小,android,android-camera,android-canvas,zxing,qr-code,Android,Android Camera,Android Canvas,Zxing,Qr Code,大家好,目前我正在从我的应用程序中扫描二维码,我使用了zxing库,它运行良好,我的问题是我的galaxy s4手机扫描区域非常小 请帮帮我 提前感谢CameraManager类定义了两个常量MIN\u FRAME\u WIDTH和MIN\u FRAME\u HEIGHT。您应该根据需要修改它们,并且一切都应该正常工作: private static final int MIN_FRAME_WIDTH = 240; // (your desired value here) private st

大家好,目前我正在从我的应用程序中扫描二维码,我使用了zxing库,它运行良好,我的问题是我的galaxy s4手机扫描区域非常小

请帮帮我


提前感谢CameraManager类定义了两个常量
MIN\u FRAME\u WIDTH
MIN\u FRAME\u HEIGHT
。您应该根据需要修改它们,并且一切都应该正常工作:

private static final int MIN_FRAME_WIDTH = 240;  // (your desired value here)
private static final int MIN_FRAME_HEIGHT = 240; // (your desired value here)

我知道已经太晚了,但要帮助别人 只需转到CameraManager类并将此代码粘贴到给定方法的替换上 它适用于所有类型的屏幕

    public Rect getFramingRect() {
    if (framingRect == null) {
    if (camera == null) {
    return null;
    }
    Point screenResolution = configManager.getScreenResolution();
    int width = screenResolution.x * 3 / 4;

    int height = screenResolution.y * 3 / 4;
    Log.v("Framing rect is : ", "width is "+width+"   and height is "+height);
    int leftOffset = (screenResolution.x - width) / 2;
    int topOffset = (screenResolution.y - height) / 2;
    framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);
    Log.d(TAG, "Calculated framing rect: " + framingRect);
    }
    return framingRect;
   }
替换CameraManager.java文件中的上述代码
这对我来说很管用,试试这个

如果你是从另一个android应用程序调用它,请使用intent extras扫描宽度和扫描高度


如果您碰巧正在使用phonegap插件条形码扫描仪(3.0.0或更高版本),那么传递类似xxxxx.scan的相同意图(onSuccessFunc、onFailFunc、{scan_HEIGHT:111、scan_WIDTH:222})将产生相同的结果。111表示高度,222表示宽度。

如果使用ZxingScannerView,可以覆盖
createViewFinderView()
并通过
viewFinderView
增加或减少框架矩形大小,如下所示:

scannerView = object : ZXingScannerView(requireContext()) {
    override fun createViewFinderView(context: Context?): IViewFinder {
         val viewfinderView = super.createViewFinderView(context)
         viewfinderView.setViewFinderOffset(-90) // increase size of framing rectangle
         return viewfinderView;
       }
    }
yourLayour.addView(scannerView)
scannerView.startCamera()

您在应用程序中使用源代码还是二进制代码?您可以修改源代码吗?我使用源代码可以修改:)我已经回答了您要修改的内容。请这样做,如果有任何问题,请告诉我。它起作用了,我已经检查了xxhdpi设备,并增加了大小如何减少扫描区域?您可能应该更改最大宽度和最大高度,而不是最小宽度和最小高度;)“CameraManager”类在哪里?我通过在app/build.gradle中添加一行代码来安装这个库:
编译'me.dm7.barcodescanner:zxing:1.9.3'
@SiweiShen申思维 你找到解决方案了吗?@SyedaZunairah我没有找到解决方案,因为在我的项目中没有人关心这个bug。我建议您将这个库作为一个模块添加到您的项目中,以便您可以更改和编译所有源代码。我在哪里找到CameraManager类?希望这有助于我知道为时已晚
scannerView = object : ZXingScannerView(requireContext()) {
    override fun createViewFinderView(context: Context?): IViewFinder {
         val viewfinderView = super.createViewFinderView(context)
         viewfinderView.setViewFinderOffset(-90) // increase size of framing rectangle
         return viewfinderView;
       }
    }
yourLayour.addView(scannerView)
scannerView.startCamera()