当前位置: 移动技术网 > 移动技术>移动开发>Android > 基于barcodescanner实现Android二维码扫描功能

基于barcodescanner实现Android二维码扫描功能

2019年07月24日  | 移动技术网移动技术  | 我要评论
二维码扫描现在成为一种非常常见的app基础功能,附录1是我曾经用过的二维码/条形码扫描开源项目,但是附录1的项目集成和二次定制比较繁琐和麻烦,因此可以发现不少人基于zxin

二维码扫描现在成为一种非常常见的app基础功能,附录1是我曾经用过的二维码/条形码扫描开源项目,但是附录1的项目集成和二次定制比较繁琐和麻烦,因此可以发现不少人基于zxing做了二次的开发,并贡献出这些项目,发到github上,其中barcodescanner就是这样的项目,barcodescanner的github项目地址: ,barcodescanner简化了zxing的集成和二次定制难度,方便快速集成和开发,并且扫描性能和结果比较稳定,现在给出基于barcodescanner的二维码扫描示例。

第一, 先引入对barcodescanner的引用,需要在build.gradle里面添加依赖:

compile 'me.dm7.barcodescanner:core:1.9'
compile 'me.dm7.barcodescanner:zxing:1.9'

第二, 写布局:

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <me.dm7.barcodescanner.zxing.zxingscannerview
 android:id="@+id/scannerview"
 android:layout_width="match_parent"
 android:layout_height="match_parent" />

 <button
 android:id="@+id/light"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignparentbottom="true"
 android:layout_centerhorizontal="true"
 android:text="开/关灯" />

</relativelayout>

第三, 上层java代码:

package zhangphil.mgscanner;

import android.app.activity;
import android.os.bundle;
import android.view.view;
import android.widget.toast;

import com.google.zxing.result;

import me.dm7.barcodescanner.zxing.zxingscannerview;

public class mainactivity extends activity {
 private boolean mflash;
 private zxingscannerview mscannerview;

 private zxingscannerview.resulthandler mresulthandler = new zxingscannerview.resulthandler() {
 @override
 public void handleresult(result result) {
  mscannerview.resumecamerapreview(mresulthandler); //重新进入扫描二维码

  toast.maketext(getapplicationcontext(), "内容=" + result.gettext() + ",格式=" + result.getbarcodeformat().tostring(), toast.length_short).show();
 }
 };

 @override
 public void oncreate(bundle state) {
 super.oncreate(state);
 setcontentview(r.layout.activity_main);

 mscannerview = (zxingscannerview) findviewbyid(r.id.scannerview);
 mscannerview.setresulthandler(mresulthandler);

 findviewbyid(r.id.light).setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view view) {
  toggleflash();
  }
 });
 }

 @override
 public void onresume() {
 super.onresume();
 mscannerview.setresulthandler(mresulthandler);
 mscannerview.startcamera();
 }

 @override
 public void onpause() {
 super.onpause();
 mscannerview.stopcamera();
 }

 private void toggleflash() {
 mflash = !mflash;
 mscannerview.setflash(mflash);
 }
}

不要忘记添加相机和闪光灯权限:

<uses-permission android:name="android.permission.camera" />
<uses-permission android:name="android.permission.flashlight" />

代码运行结果如图:

附录:android实现基于zxing快速集成二维码扫描功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网