导航:首页 > 操作系统 > android仿微信二维码扫描

android仿微信二维码扫描

发布时间:2022-07-21 12:39:52

android二维码识别源码,可有多种实现方式

这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。

2、ZXing库主要类
下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:
CaptureActivity。这个是启动Activity 也就是扫描器。
CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。
DecodeThread 解码的线程。
com.google.zxing.client.android.camera 包,摄像头控制包。
ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。

3、使用ZXing生成二维码
下面针对二维码生成和解析做个简单介绍,至于详细的使用方法,建议大家还是自己看看源码,使用起来很简单,不过这个开源项目的代码,值得好好看看。首先给出二维码生成的方法:
View Code
上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的APP的推广方式。
上面代码做的事情不多,主要是调用ZXing库里面QRCodeWriter().encode的方法对我们传进去的URL进行编码,具体如何编码,这个我这里就不详细说,有兴趣可以看ZXing的源码。文章最后会给出ZXing的源码和例子代码。

4、扫描二维码获取信息
扫描获取二维码信息的工作稍微复杂一些,主要是需要编写Camera的使用,这个跟我们一般使用Camera一样,需要使用Surfaceview作为预览,这一部我这里就不说了,这个应该不是太复杂。对于使用过Camera做预览的朋友,应该是挺简单的事情。获取二维码数据的关键处理是在Camera的自动对焦回调函数哪里,调用ZXing的解码接口。
View Code
这里稍微多说一句,由于解码需要一定时间,所以ZXing的解码调用,都是使用了Handler作为线程通信机制,解码的工作都是放在独立线程里面使用的,如果你直接在主线程解码,恐怕ANR问题是避免不了。
View Code
上面是解码的线程处理不同状态的时候需要注意的地方,我们这里只看获取图像成功的地方,成功获取图片解码的实在DecodeThread里面实现,DecodeThread里面解码成功后,会把数据序列化,然后保存到Bundle里面,我们可以直接通过Bundle的序列化,获取到图片数据。同时会把解码后的结果保存到MSG里面,然后就可以根据实际情况进行处理,例如上面代码,解码成功后,会调用一个处理函数:
View Code
上面就是整个二维码的解码流程,里面因为涉及很多Camera的使用,所以你如果需要使用二维码识别,需要注意一下你的程序需要申请下面的权限,一般的Camera使用以及Camera的自动对焦等。
View Code
5、结语
上面就是生成和识别二维码的关键流程和代码,有兴趣的朋友可以自己查看ZXing的源码,里面有很多图像分析的知识可以学习。具体使用也可以参考我下面给出的Demo。二维码对于现在移动开发来说很是很常用的技术,所以有空可以了解一下,说不定什么时候就用上了。另外,ZXing库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。
转载

Ⅱ 实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)demo

要实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)

主要用到paint类,drawRect()以及drawLine()函数,参数分别是左上点x,左下点y,右上点x,右下点y,画布paint
drawRect(float left, float top, float right, float bottom, Paint paint)
drawLine(float startX, float startY, float stopX, float stopY, Paint paint)

Ⅲ 求一个android 二维码扫描竖屏不变形的demo 效果和微信,UC差不多就行

http://www.eoeandroid.com/thread-332855-1-2.html

Ⅳ android用手机怎么扫描二维码

下手机浏览器,
网络浏览器,
QQ浏览器等都自带扫码功能
微信扫一扫也带扫码功能

Ⅳ android 二维码扫描的原理是什么

你好!具体的我不懂怎么讲,就相当于商品的身份证,二维码不容易仿冒。你看看下面的介绍吧。。。网路找到的。
什么是条码技术?
条形码,简称“条码”,是由一组黑白相间、宽度不同的条状符号组成。
条码技术是研究如何把计算机所需要的数据表示成条码形式,和如何将条码表示的数据和符号转变为计算机可以自动采集、识别的数据。因而,条码技术就包括从编码到制作、识读、处理等一系列技术。
根据不同的编码规则,提出的编码方案已经有多达四十余种,目前应用最为广泛的有:交叉二五码、三九码、UPC码、EAN码、128码等。
从印制条形码的材料、颜色分类,可分黑白条形码、彩色条形码、发光条形码(荧光条形码、磷光条形码)和磁性条形码等。
近年来又出现了按矩阵方式或堆栈方式排列信息的二维条形码。
我国的适用标准:一维条码通用商品条码是与EAN码等效,二维条码是与PDF417兼容的码制。
条形码有什么优点?
A.输入速度快:与键盘输入相比,条码输入的速度是键盘输入的5倍,并且能实现"即时数据输入"。
B.可靠性高:键盘输入数据出错率为三百分之一,利用光学字符识别技术出错率为万分之一,而采用条码技术误码率低于百万分之一。
C.采集信息量大:利用传统的一维条码一次可采集几十位字符的信息,二维条码更可以携带数千个字符的信息,并有一定的自动纠错能力。
D.灵活实用:条码标识既可以作为一种识别手段单独使用,也可以和有关识别设备组成一个系统实现自动化识别,还可以和其他控制设备联接起来实现自动化管理。
另外,条码标签易于制作,对设备和材料没有特殊要求,识别设备操作容易,不需要特殊培训,且设备也相对便宜。
条形码的应用领域
仓库管理系统(商品、库位标识)
在工业中的应用(零部件标识,过程控制,信息传递等)
办公室自动化管理(固定资产管理,门卫、考勤管理等)
还可以用于如,图书管理、商场管理、血库管理、邮电管理、海关报关单管理等等。
一维条码的结构与组成
我国采用的一维条码是通用商品条码,采用EAN条码结构。EAN条码是国际上通用的通用商品代码。我国主版是由13位数字及相应的条码符号组成,在较小的商品上也采用8位数字码及其相应的条码符号。
每个条码的组成可分为:
1.前缀码。由三位数字组成,是国家的代码,我国为690,是国际物品编码会统一决定的。
2.制造厂商代码。由四位数字组成,我国物品编码中心统一分配并统一注册,一厂一码。
3商品代码。由五位数字组成,表示每个制造厂商的商品,由厂商确定,可标识十万种商品。
4.校验码。由一位数字组成,用以校验前面各码的正误。
一维条码的特点
条形码符号图形结构简单;
每个条形码字符由一定的条符组成,占有一定的宽度和印制面积;
每种编码方案均有自己的字符集;
每种编码方案与对应的阅读装置的性能要求密切配合。一维条码的容量多数一维条码所能表示的字符集不过是10个数字,26个英文字母及一些特殊字符。条码字符集最大的Code l28条码,所能表示的字符个数也不过是128个ASCII符。什么是二维条码?二维条码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。二维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码形态上是由多行短截的一维条码堆叠而成;矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。堆叠式二维条码,有代表性的包括PDF417、Code 49、Code 16K等。矩阵式二维条码有代表性的是Code one、Aztec、Date Matrix、QR码等。二维条码的特点1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。3.容错能力强,具有纠错功能:这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息。4.译码可靠性高:它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一。5.可引入加密措施:保密性、防伪性好6.成本低,易制作,持久耐用7.条码符号形状、尺寸大小比例可变8.二维条码可以使用激光或CCD阅读器识读。

Ⅵ 如何使用android studio开发扫描二维码程序

我们项目的前提是你已经将基本的运行环境及sdk都已经安装好了,读者可自行网络环境配置相关内容,本文不再赘述。右键点击new-->Mole,Mole相当于新建了一个项目。如图所示

选择Android Application,点击next

将My Mole 和app改成自己项目相应的名字,同时选择支持的Android版本

这一步我们选择Blank Activity,自己手动编写登录界面,而不依赖系统内置的Login Activity,一直点击next,最后点击finish就完成了项目的创建

在project下我们可以看到出现了我们刚才创建的login项目

展开res/layout,点击打开activity_main.xml文件,在这个文件里我们将完成登录界面的编写

这是初始的主界面,还没有经过我们编写的界面,Android Studio有一个很强大的预览功能,相当给力

我们将activity_main.xml的代码替换成如下代码:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:stretchColumns="0,3">
<TableRow>
<TextView />
<TextView
android:text="账 号:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24px"
/>
<EditText
android:id="@+id/account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24px"
android:minWidth="220px"/>
<TextView />
</TableRow>
<TableRow android:layout_marginTop="20px">
<TextView />
<TextView
android:text="密 码:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

/>
<EditText
android:id="@+id/pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="220px"
android:textSize="24px"
android:inputType="textPassword"/>
<TextView />
</TableRow>
<TableRow android:layout_marginTop="20px">
<TextView />
<Button
android:id="@+id/login"
android:text="登录"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/quit"
android:text="退出"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView />
</TableRow>
</TableLayout>

Ⅶ Android 二维码扫描开发(大神进……)

camera.release()

Ⅷ android开发中怎么实现扫描二维码

http://blog.csdn.net/xiaanming/article/details/10163203

Ⅸ android上二维码的扫描

你在度娘上搜索ZXing demo, 第一个csdn的代码下载就是。不大方便直接发连接,度娘对带连接的答案审核太过于厉害。
我做过二维码扫描的模块,直接就是用的ZXing demo,原代码就在里面,超级详细的!二维码可以扫描,它还可以扫描条型码。
我是直接调用它里面的CaptureActivity,在它finish()时,forResult把扫描的字符串传回来就可以。超好用的。
我就是做安桌开发的,欢迎你继续追问,也谢谢采纳答案。

阅读全文

与android仿微信二维码扫描相关的资料

热点内容
微信怎么发应用app 浏览:776
花生壳dns服务器地址 浏览:648
squad服务器一般什么时候人多 浏览:479
程序员战门课 浏览:474
config保存服务器地址 浏览:317
预订网吧座位的app叫什么 浏览:416
香港服务器主机地址 浏览:640
网店美工pdf 浏览:447
一堆文件夹怎么弄出来 浏览:743
博途如何编译硬件 浏览:418
fortran程序pdf 浏览:504
电池消耗算法 浏览:394
服务器中断连接怎么处理 浏览:222
上世纪互联网不发达程序员很难 浏览:841
语音识别android开源 浏览:762
地埋式垃圾压缩中转站 浏览:902
apachehttpdlinux 浏览:944
快递员中通app预付款是什么 浏览:843
java路径转义 浏览:857
keytool加密算法 浏览:131