[Android笔记8]使用Zxing实现二维码扫描

地址

CSDN 地址:http://blog.csdn.net/xiangyong_1521/article/details/50740697

这是16年的时候,用ZXING包简单地实现了扫描和扫描的结果反馈的一个DEMO,出于对二维码扫描的兴趣而做的,只是一直未运用到实际的工作中,就当是玩泥巴了!

目录

  • 扫描二维码的逻辑
  • Zxing介绍
  • 实现
  • 主要代码

一. 扫描二维码的逻辑

所谓的二维码,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形,用于记录数据符号信息的东西; 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理; 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息; 二维码相对于条形码的优势就是省空间;

二. Zxing介绍

Zxing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的接口。 Zxing可以实现使用手机的内置的摄像头完成条形码和二维码的扫描与解码。 目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括: J2ME、J2SE和Android zxing目前支持的的格式如下: UPC-A,UPC-E EAN-8,EAN-13 39码 93码 代码128 QR码


三. 实现

我用的是“草料二维码”生成二维码的工具生成一个结果为xiangyong的二维码:

最终实现的gif:


四. 主要代码

import com.zxing.activity.CaptureActivity;
public class MainActivity extends Activity implements OnClickListener{  
    private Button button1;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        button1 = (Button) findViewById(R.id.button1);  
        button1.setOnClickListener(this);  
    }  

    @Override  
    public void onClick(View v) {  
        //扫码操作  
        Intent intent=new Intent(this,CaptureActivity.class);  
        startActivityForResult(intent,0);  
    }  

//此方法用于获取扫描的数据内容data
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        if(resultCode==Activity.RESULT_OK){
//重写result,获得扫描出来的内容:  
            String result=data.getExtras().getString("result");  
            Toast.makeText(this, result, 1).show();  
        }  
    }  
}

清单配置中需要添加的内容:

<!-- 需要的权限 -->
  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-permission android:name="android.permission.VIBRATE"/>

<!-- 注册CaptureActivity -->
<activity
            android:configChanges="orientation|keyboardHidden"
            android:name="com.zxing.activity.CaptureActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden" >
        </activity>

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏项勇

笔记58 | Android闹钟

2003
来自专栏C语言及其他语言

Android应用架构

来源: 小鄧子(@Rx小鄧子) Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回...

3787
来自专栏Android先生

RxJava2 实战知识梳理(2) - 计算一段时间内数据的平均值

今天,我们继续跟着 RxJava-Android-Samples 的脚步,一起看一下RxJava2在实战当中的应用,在这个项目中,第二个的例子的描述如下...

754
来自专栏生信技能树

SNV突变(96种)频谱的制作

昨天我们学习了正常情况下,6种SNV(C>A, C>G, C>T, T>A, T>C, T>G)突变频谱的制作,但是如果考虑到突变的上下文,就可以变成96种(如...

2825
来自专栏木宛城主

SharePoint 2013 Designer工作流——Parallel Block的应用

参考目录 安装和配置SharePoint 2013 Workflow SharePoint 2013 实现多级审批工作流 在自定义Workflow...

21710
来自专栏Android 开发者

在 Android O 上用到 MediaStyle 的提醒功能

2492
来自专栏图像识别与深度学习

《Android》Lesson20-广播2

1154
来自专栏Android 技术栈

Android 阿里百川cps SDK接入流程

因公司业务需求,需接入阿里百川SDK和京东联盟cps相关服务,为了跳到淘宝和京东,用户购买后得到佣金。接入过程中遇到很多坑,网上相关资料也甚少,虽然东西不算多,...

1671
来自专栏腾讯Bugly的专栏

从 Android 静音看正确的查找 bug 的姿势

0、写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT。。话说年关难过,bug 多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤。。。艾玛,扯...

3436
来自专栏木宛城主

探索MVP(Model-View-Presenter)设计模式在SharePoint平台下的实现

对于SharePoint Developers来说,往往会过多的去关注SharePoint平台和工具,而把设计模式和代码的可测试性放在了一个较低的优先级。这并...

1777

扫码关注云+社区