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

本文共 3038 字,大约阅读时间需要 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://miupo.baihongyu.com/

你可能感兴趣的文章
Spring Security之用户名+密码登录
查看>>
java JSplitPane设置比例
查看>>
批量操作Windows域用户
查看>>
shell脚本 接受用户参数 记录一下
查看>>
健脾祛湿的中成药有哪些?
查看>>
IIS下支持下载.exe文件
查看>>
CXF WebService Hello World
查看>>
市场调研报告:企业级信息防泄漏大趋势
查看>>
济南企业短信平台的价格如何?
查看>>
requirejs
查看>>
php printf() 输出格式化的字符串
查看>>
VS2013下的64位与32位程序配置
查看>>
浅谈C中的指针和数组(二)
查看>>
SSM+Maven+IDEA增删改查
查看>>
微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:
查看>>
2001年日语能力考试二级真题及答案
查看>>
移动端页面布局
查看>>
FUNCS.H中的函数声明
查看>>
让织梦CMS的后台编辑器支持优酷视频
查看>>
Python语言中round函数的一个疑惑
查看>>