Android QR Code 二維碼快速開發——使用ZXing, ZBar

Android QR Code 二維碼快速開發——使用ZXing, ZBar。

試瞭試Android二維碼開始,用瞭下ZXing,也用瞭下Zbar。這裡是基於Barcode Scanner,在裡面已經把代碼都封裝好瞭,隻需要直接調用即可。

Android 二維碼開發

二維碼簡介

二維碼(Quick Response Code),又稱二維條碼,它是用特定的幾何圖形按一定規律在平面(二維方向)上分佈的黑白相間的圖形,是所有信息數據的一把鑰匙。在現代商業活動中,可實現的應用十分廣泛,如:產品防偽/溯源、廣告推送、網站鏈接、數據下載、商品交易、定位/導航、電子商務應用、車輛管理、信息傳遞等。如今智能手機掃一掃(簡稱313)功能的應用使得二維碼更加普遍,隨著國內物聯網產業的蓬勃發展,更多的二維碼技術應用解決方案被開發,二維碼成為移動互聯網入口真正成為現實。

ZXING 庫簡介

Zxing是Google提供的關於條碼(一維碼、二維碼)的解析工具,提供瞭二維碼的生成與解析的方法。

ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.

barcode scanner

簡介

Android library projects that provides easy to use and extensible Barcode Scanner views based on ZXing and ZBar.

簡單地來說,就是它封裝瞭ZXing和ZBar,官方在其網站上給瞭示例:

Android 二維碼示例

步驟大致如下:

1.添加庫到build.gradle

compile 'me.dm7.barcodescanner:zbar:1.5'

2.添加CAMERA權限


3.代碼

public class SimpleScannerActivity extends Activity implements ZBarScannerView.ResultHandler {
    private ZBarScannerView mScannerView;

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);
        mScannerView = new ZBarScannerView(this);    // Programmatically initialize the scanner view
        setContentView(mScannerView);                // Set the scanner view as the content view
    }

    @Override
    public void onResume() {
        super.onResume();
        mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
        mScannerView.startCamera();          // Start camera on resume
    }

    @Override
    public void onPause() {
        super.onPause();
        mScannerView.stopCamera();           // Stop camera on pause
    }

    @Override
    public void handleResult(Result rawResult) {
        // Do something with the result here
        Log.v(TAG, rawResult.getContents()); // Prints scan results
        Log.v(TAG, rawResult.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)
    }
}

當然我們也添加添加一個Intent

private void startScanner() {
    Intent startScanner = new Intent(this, SimpleScannerActivity.class);
    startActivity(startScanner);
}

You May Also Like