zoukankan      html  css  js  c++  java
  • android中Zing二维码扫描,二维码生成

        Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护。zbar主要用C来写的,对速度有要求的可使用zbar,但目前没有在维护,项目地址:https://github.com/ZBar/ZBar

    1.添加依赖

    在根build.gradle中添加maven { url 'https://jitpack.io' }

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://jitpack.io' }
        }
    }
    

     在你的app的build.gradle中添加依赖implementation 'com.github.yuzhiqiang1993:zxing:2.0.0'

    /*添加依赖*/
        compile 'com.github.yuzhiqiang1993:zxing:2.0.0'

    2.权限

     <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.FLASHLIGHT" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    跳转到扫描界面

      Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
             /*ZxingConfig是配置类  可以设置是否显示底部布局,闪光灯,相册,是否播放提示音  震动等动能
             * 也可以不传这个参数
             * 不传的话  默认都为默认不震动  其他都为true
             * */
    
            //ZxingConfig config = new ZxingConfig();
            //config.setShowbottomLayout(true);//底部布局(包括闪光灯和相册)
            //config.setPlayBeep(true);//是否播放提示音
            //config.setShake(true);//是否震动
           //config.setShowAlbum(true);//是否显示相册
            //config.setShowFlashLight(true);//是否显示闪光灯
            //intent.putExtra(Constant.INTENT_ZXING_CONFIG, config);
            startActivityForResult(intent, REQUEST_CODE_SCAN);

    在onActivityResult中接收解析的结果

     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
    
            // 扫描二维码/条码回传
            if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {
                if (data != null) {
    
                    String content = data.getStringExtra(Constant.CODED_CONTENT);
                    result.setText("扫描结果为:" + content);
                }
            }
        }

    生成二维码

    如果你有生成二维码的需求,可以直接通过CodeCreator.createQRCode(contentEtString, 400, 400, null);即可。

    try {
                        /*
                        * contentEtString:字符串内容
                        * w:图片的宽
                        * h:图片的高
                        * logo:不需要logo的话直接传null
                        * */
    
                        Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
                        bitmap = CodeCreator.createQRCode(contentEtString, 400, 400, logo);
                    } catch (WriterException e) {
                        e.printStackTrace();
                    }

    参考于:https://blog.csdn.net/qq_30445765/article/details/79120359

  • 相关阅读:
    高数基础
    java.io.FileNotFoundException: [WEB-INF/spring-servlet.xml] cannot be opened because it does not exist
    HBase1.0.0 实现数据增删查
    cm 安装cdh 后添加hive服务
    HBase启动错误提示别的机器60000已经存在
    CM集群管理
    CM 安装CDH 错误: 安装失败。 无法接收 Agent 发出的检测信号。
    Js运动框架
    单片机DA转换实现正弦波
    怎样让树莓派接移动硬盘
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/10077214.html
Copyright © 2011-2022 走看看