BGAQRCode-Android實踐

Github地址:BGAQRCode-Android

ZXing

添加依賴

dependencies {
    compile 'com.google.zxing:core:3.2.1'
    compile 'cn.bingoogolapple:bga-qrcodecore:1.1.7@aar'
    compile 'cn.bingoogolapple:bga-zxing:1.1.7@aar'
}

添加控件

<cn.bingoogolapple.qrcode.zxing.ZXingView
        android:id="@+id/mQRCodeView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:qrcv_animTime="1000"
        app:qrcv_barCodeTipText="將條碼放入框內,即可自動掃描"
        app:qrcv_barcodeRectHeight="140dp"
        app:qrcv_borderColor="@android:color/white"
        app:qrcv_borderSize="1dp"
        app:qrcv_cornerColor="@color/colorPrimaryDark"
        app:qrcv_cornerLength="20dp"
        app:qrcv_cornerSize="3dp"
        app:qrcv_customScanLineDrawable="@mipmap/scan_icon_scanline"
        app:qrcv_isBarcode="false"
        app:qrcv_isCenterVertical="false"
        app:qrcv_isOnlyDecodeScanBoxArea="false"
        app:qrcv_isScanLineReverse="true"
        app:qrcv_isShowDefaultGridScanLineDrawable="false"
        app:qrcv_isShowDefaultScanLineDrawable="true"
        app:qrcv_isShowTipBackground="true"
        app:qrcv_isShowTipTextAsSingleLine="false"
        app:qrcv_isTipTextBelowRect="false"
        app:qrcv_maskColor="#33FFFFFF"
        app:qrcv_qrCodeTipText="將二維碼/條碼放入框內,即可自動掃描"
        app:qrcv_rectWidth="200dp"
        app:qrcv_scanLineColor="@color/colorPrimaryDark"
        app:qrcv_scanLineMargin="0dp"
        app:qrcv_scanLineSize="0.5dp"
        app:qrcv_tipTextColor="@android:color/white"
        app:qrcv_tipTextSize="12sp"
        app:qrcv_toolbarHeight="56dp"
        app:qrcv_topOffset="90dp"/>

在onCreate中initQRView,并在activity的各個生命周期中加以處理即可。

    private fun initQRView() {
        mQRCodeView.setDelegate(this)
    }

    override fun onStart() {
        super.onStart()
        mQRCodeView.startCamera()

        mQRCodeView.showScanRect()
    }

    override fun onStop() {
        mQRCodeView.stopCamera()
        super.onStop()
    }

    /**
     * 設置震動
     */
    private fun vibrate() {
        val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
        vibrator.vibrate(200)
    }

    override fun onScanQRCodeSuccess(result: String?) {
        Log.i(TAG, "result:" + result)
        Toast.makeText(this, result, Toast.LENGTH_SHORT).show()
        vibrate()
        mQRCodeView.startSpot()
    }

    override fun onScanQRCodeOpenCameraError() {
        Log.e(TAG, "打開相機出錯")
    }

別忘記申請權限

待續。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,569評論 2 45
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,360評論 1 9
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘請別為難小僧閱讀 7,333評論 0 132
  • 晴星期二 雖然昨天下雨了,但今天還是挺暖和的。今天中午我接上二寶回到家門口,老遠看到站在樓宇門那有個人,來到跟前一...
    傾月萱萱_0bd6閱讀 206評論 0 1
  • 一別兩寬 互相喜歡 在一起不久后就是暑假 和叔叔一個半月的異地戀 兩個人有過爭吵更多的是想念 三個月七夕一百天都是...
    劍籟之音閱讀 92評論 0 0