博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
阅读量:6273 次
发布时间:2019-06-22

本文共 3032 字,大约阅读时间需要 10 分钟。

NextQRCode ZXing开源库的精简版

**基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能

**

图片描述

与原ZXingMini项目对比

NextQRCode做了重大架构修改,原ZXingMini项目与当前NextQRCode不兼容

图片描述

dependencies {    compile 'com.github.yoojia:next-qrcode:2.0-2'    ...}

生成二维码图案

图片描述

// 二维码中间图标final Bitmap centerImage = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);// 生成的二维码图案Bitmap qrCodeImage = new QRCodeEncoder.Builder()        .width(size) // 二维码图案的宽度        .height(size)        .paddingPx(0) // 二维码的内边距        .marginPt(3) // 二维码的外边距        .centerImage(centerImage) // 二维码中间图标        .build()        .encode(content);

二维码解码

final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build();// 传入二维码图案Bitmap对象然后解码成文本内容String content = mDecoder.decode(bitmap);

使用 LiveCameraView 自动扫描解码

public class QRCodeScanActivity extends AppCompatActivity {    public static final String TAG = QRCodeScanActivity.class.getSimpleName();    private LiveCameraView mLiveCameraView;    private ImageView mCaptureImage;    private TextView mContentView;    private final CaptureCallback mCaptureCallback = new CaptureCallback() {        @Override public void onCaptured(Bitmap bitmap) {            Log.i(TAG, "-> Got bitmap, show to capture view");            mCaptureImage.setImageBitmap(bitmap);            Observable.just(bitmap)                    .map(new Func1
() { private final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build(); @Override public String call(Bitmap bitmap) { return mDecoder.decode(bitmap); } }) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1
() { @Override public void call(String content) { mContentView.setText(content); } }); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.activity_scan); mCaptureImage = (ImageView) findViewById(R.id.capture_image); mContentView = (TextView) findViewById(R.id.content); mLiveCameraView = (LiveCameraView) findViewById(R.id.capture_preview_view); mLiveCameraView.setPreviewReadyCallback(new CameraPreviewView.PreviewReadyCallback() { @Override public void onStarted(Camera camera) { Log.i(TAG, "-> Camera started, start to auto capture"); mLiveCameraView.startAutoCapture(1500, mCaptureCallback); } @Override public void onStopped() { Log.i(TAG, "-> Camera stopped"); mLiveCameraView.stopAutoCapture(); } }); }}

**基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能

**

转载地址:http://aelpa.baihongyu.com/

你可能感兴趣的文章
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
深入理解 Java 虚拟机
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
js--知识点dailyskill
查看>>