android中Zing二维码扫描,二维码生成

Posted 巫山老妖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于android中Zing二维码扫描,二维码生成的主要内容,如果未能解决你的问题,请参考以下文章

Android:实际运用Zxing集成二维码扫描 及 自定义扫码界面(demo源码)

将公司上线的 App软件生成二维码操作

Android之扫描二维码和根据输入信息生成名片二维码

java使用qcord生成的二维码,手机可以扫,扫描枪扫不出来,或者很难扫出来?

为啥我用二维码生成器,生成的二维码扫描不出来

Flutter之实现生成二维码,扫描二维码——Flutter基础系列