QR 扫描自定义布局

mai*_*inu 1 android qr-code

通过使用 Zxing 库。在build.gradle..中添加以下依赖项我可以扫描二维码。

implementation 'com.journeyapps:zxing-android-embedded:3.6.0@aar' implementation 'com.google.zxing:core:3.3.3'

我希望扫描视图显示在我自己的自定义布局中。在我的布局中,我必须在扫描视图下方显示一个列表视图,并且在布局顶部有一个单行标题文本。

如何实施?

小智 5

您应该将 ZXingScannerView 添加到您的布局中,即:

<me.dm7.barcodescanner.zxing.ZXingScannerView
    android:id="@+id/scanner"
    android:layout_width="wrap_content"
    android:layout_height="200dp"/>
Run Code Online (Sandbox Code Playgroud)

并在您的 onCreate() 方法中获取该视图。

@Override
public void onCreate(Bundle state) {
  ...
  ZXingScannerView mScannerView = (ZXingScannerView)findViewById(R.id.scanner)
  ...
}
Run Code Online (Sandbox Code Playgroud)

活动或片段必须实现 ZXingScannerView.ResultHandler 接口才能获取二维码。

当你想开始扫描时,你可以创建一个类似于这个的方法:

public void startScanner() {
     mScannerView.setResultHandler(this);
     mScannerView.startCamera();
     mScannerView.setFlash(true);
     mScannerView.setAutoFocus(true);
}
Run Code Online (Sandbox Code Playgroud)

最后在ZXingScannerView.ResultHandler接口的handleResult(Result rawResult)方法中得到结果。

@Override
public void handleResult(Result rawResult) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

就是这样。希望对你有帮助