【问题标题】:How to make area for scan barcode using library Zbar more smaller android如何使用库 Zbar 使扫描条码的区域更小 android
【发布时间】:2017-05-05 07:45:42
【问题描述】:

我将这个库 https://github.com/dm77/barcodescanner 用于我的应用程序。一切正常。但我想做一些修改,使扫描条形码的区域更小。我想调整区域扫描的大小。此图像显示区域扫描的默认大小。

方框区域扫描。我怎样才能使它更小的盒子区域或调整大小?抱歉,我还没有修改代码,因为我卡住了如何调整它的大小。

我想要左侧图像,它不是 1。与图像 2(右侧)相比,高度较小。因为宽度没问题,没关系。只是为了身高。

【问题讨论】:

  • 你想把它变成正方形吗?
  • 库没有这样的方法来调整扫描仪视图的大小。
  • @Piyush 我想让高度更小。你看到图中的红线了吗?也许我想要顶线和红线之间的高度..意味着比默认值小..你明白我的意思吗?
  • 我更新问题。我添加图像更清晰。

标签: android resize barcode


【解决方案1】:

如果你想调整它的大小。遵循一些步骤:

1) 在您当前的 xml 文件中添加一个布局。

<RelativeLayout
    android:id="@+id/qr_scan_parent_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</RelativeLayout>

2) 在 Java 文件中找到相关布局的 id 并对其进行初始化。

3) 对于调整大小框,请使用 CustomViewFinderView,这是您的自定义类。

private static class CustomViewFinderView extends ViewFinderView {
    public final Paint PAINT = new Paint();

    public CustomViewFinderView(Context context) {
        super(context);
        init();
    }

    public CustomViewFinderView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    private void init() {
        PAINT.setColor(Color.WHITE);
        PAINT.setAntiAlias(true);
        setSquareViewFinder(true);
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        drawTradeMark(canvas);
    }

    private void drawTradeMark(Canvas canvas) {
        Rect framingRect = getFramingRect();
        float tradeMarkTop;
        float tradeMarkLeft;
        if (framingRect != null) {
            tradeMarkTop = framingRect.bottom + PAINT.getTextSize() + 10;
            tradeMarkLeft = framingRect.left;
        } else {
            tradeMarkTop = 10;
            tradeMarkLeft = canvas.getHeight() - PAINT.getTextSize() - 10;
        }
        canvas.drawText("", tradeMarkLeft, tradeMarkTop, PAINT);
    }
}

4) 现在将您的扫描仪视图添加到相对布局中。

 private void addQRScanningView() {
    mScannerView = new ZXingScannerView(this) {
        @Override
        protected IViewFinder createViewFinderView(Context context) {
            return new CustomViewFinderView(context);
        }
    };
    relative_layout.addView(mScannerView);
}

并在onCreate() 方法中调用addQRScanningView()

【讨论】:

  • 谢谢先生。我已经实现了你的代码,但没有任何改变。
  • 我需要使用哪个值来调整大小?
  • stackoverflow.com/a/47591098/2820534 在您提供的提示的帮助下实现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多