Android二維碼生成與掃描

2016-04-27    分類:Android開發、程式設計開發、首頁精華0人評論發表於2016-04-27

本文由碼農網 – 蘇耀東原創,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

第三方庫匯入

Zxing3.1第三方庫下載連結

直接import module,將上面的第三方庫匯入。

在匯入後如果用到的icon或者字串資源名稱一樣,可能會報錯,解決方法(label名重複為例)

1.Manifest標籤下新增 xmlns:tools=”http://schemas.android.com/tools”

2.Application標籤下新增tools:replace=”android:label”

掃描二維碼

直接呼叫程式碼,進入二維碼掃描的介面。

private void startForQrScan() {
        startActivityForResult(new Intent(xxx.this, CaptureActivity.class), 0);
}

掃描的結果在onActivityResult返回。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK){
            Bundle bundle = data.getExtras();
            String result = bundle.getString("result");
            L.d("result: " + result);
        }
    }

生成二維碼

呼叫下面程式碼生成二維碼圖片,同時設定二維碼中間的logo圖示

private void generateQr(String data) {
        int width = Tools.dip2px(this, 300);
        Bitmap bitmap = EncodingUtils.createQRCode(data, width, width, 
BitmapFactory.decodeResource(getResources(), R.drawable.qr_logo));
        img_qr.setImageBitmap(bitmap);
    }

為了提高掃描的效果,可以將螢幕亮度設定到最亮

WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 1.0f;
        getWindow().setAttributes(lp);

自定義掃描佈局

直接呼叫上面掃描的程式碼,介面佈局是固定的,如果想自定義佈局,例如在掃描框下顯示文字或者其他輸入框之類的,可以將以下幾個檔案拷出,簡單修改下,即可自己定義佈局並增加其他功能。

CaptureActivityHandler
DecodeHandler
DecodeThread
CaptureActivity

至此,二維碼掃描及生成功能就整合到我們的APP中了,是不是很簡單!

本文連結:http://www.codeceo.com/article/android-qr-code-generate.html
本文作者:碼農網 – 蘇耀東
原創作品,轉載必須在正文中標註並保留原文連結和作者等資訊。]

相關文章