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,665评论 2 45
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 11,477评论 1 9
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘请别为难小僧阅读 12,094评论 0 132
  • 晴星期二 虽然昨天下雨了,但今天还是挺暖和的。今天中午我接上二宝回到家门口,老远看到站在楼宇门那有个人,来到跟前一...
    倾月萱萱_0bd6阅读 1,456评论 0 1
  • 一别两宽 互相喜欢 在一起不久后就是暑假 和叔叔一个半月的异地恋 两个人有过争吵更多的是想念 三个月七夕一百天都是...
    剑籁之音阅读 906评论 0 0