美文网首页Android_SpeakAndroid开发Android知识
04-一分钟集成扫描功能,支持二维码与条形码

04-一分钟集成扫描功能,支持二维码与条形码

作者: 水大云霄 | 来源:发表于2017-05-08 11:44 被阅读257次

    基于ZXing库封装的扫一扫控件,一分钟让你的app拥有条形码,二维码扫描功能,还支持自定义界面以及闪光灯开关,赶紧搬起来吧!

    一、使用方法

    1、封装的扫描控件

    <com.moral.qrcodelib.view.ZXingView
            android:id="@+id/zxingview"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_below="@+id/top"
            android:layout_weight="1"
            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="16dp"
            app:qrcv_topOffset="90dp" />
    

    2、继承扫描回调接口

      public interface Delegate {
            /**
             * 处理扫描结果
             *
             * @param result
             */
            void onScanQRCodeSuccess(String result);
    
            /**
             * 处理打开相机出错
             */
            void onScanQRCodeOpenCameraError();
        }
    

    3、开启扫描

            mQRCodeView.startCamera();
            mQRCodeView.changeToScanBarcodeStyle();
            //开始条形码扫描
            mQRCodeView.showScanRect();
            //二维码扫描
            //mQRCodeView.changeToScanQRCodeStyle();
            //开启闪光灯
            //mQRCodeView.openFlashLight();
            mQRCodeView.startSpot();
    

    上图看看:
    二维码:


    条形码:


    二、简要原理
    1、UI主要是自定义View,每个元素(四个角、框线,遮罩,扫描线)都是canvas画的,扫描线的来回移动,是使用postInvalidateDelayed实现的,老司机具体看代码吧。
    2、至于功能方便的,是基于Zxing的库,你们都懂。
    3、关于6.0以上权限请求的,使用easyPermission库,具体看代码,哈哈
    代码传送:
    https://github.com/shuijilove/ZXingCodeDemo

    还可参考:
    https://github.com/dm77/barcodescanner
    https://github.com/bingoogolapple/BGAQRCode-Android

    相关文章

      网友评论

        本文标题:04-一分钟集成扫描功能,支持二维码与条形码

        本文链接:https://www.haomeiwen.com/subject/ntjmtxtx.html