基于barcodescanner实现Android二维码扫描功能
程序员文章站
2022-08-08 09:59:36
二维码扫描现在成为一种非常常见的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快速集成二维码扫描功能
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Android ScreenLockReceiver监听锁屏功能示例
下一篇: 有故事