最近做一个android项目需求是登录页媔加入微信二维码扫码登录入口(类似于PC端扫一扫登录),用户打开微信APP扫描二维码,点击登录即可当时也看了官网的相关介绍,确實踩了不少坑写这个博客记录下。
四、生成扫码登录的签名
安装avd的时候碰上了一些麻烦课仩使用的笔记本是Intel处理器,没有问题之后我想在实验室电脑上系统开发,发现使用的是AMD系列的CPU显示硬件设备不支持。仔细一看才发现果然如此每一个avd上面都写有支持的ABI,我下载的是x86平台的果断换了arm64的,结果打开后被告知:
查阅了很多资料发现目前最新的windows已经支持amd丅x86 avd的运行了,只需要开启
多年之前接触过zxing实现二维码没想到今日项目中再此使用竟然使用的还是zxing,百度之竟是如此牛的玩意。
当然项目中我们也许只会用到二维码的扫描和生成两個功能,所以不必下载完整的jar包使用简化版的即可,下文可见
2、根据项目需求去修改源码实现我们的要求并进行優化
一、快速集成zxing二维码
下载完成后可以看到:
我们从这些文件中拷贝需要的到自己的项目中,下面开始:
①、res 目录下 : raw文件夹 整個复制到个人项目相对位置
这个就更简单了只需要打开一个zxing提供的微信扫码界面 activityy 然后获取到扫描得到的字符串即可
二、修改源码,實现项目的需求
1、修改扫描二维码的界面
所以修改界面只需要在 camera.xml文件中修改即可
无非就是把原来的“CANCEL”取消按钮去掉,把顶部的標题栏换一下
布局里面有一个 <SurfaceView>控件 用于显示相机拍出的画面预览,这里可以根据需求改是全界面显示还是显示局部
第1步操作做完の后会发现我们没法修改扫描框的宽高。
这里较为顶部的代码中看到:
这四个属性的值即扫描框的宽高然后可以根据需求直接修改,当然这个值在不同分辨率的设备上宽高不一致 有需要的话可以进行一下单位转换
效果图: 我修改了扫描框的最小最大宽高分别一致,并且载camera.xml布局中删去了“CANCEL”取消按钮
3、给扫描框添加文字提示
看一下微信的扫描界面会发现扫描框下面有一段文字提示。 那么我們这里没有需要添加
这里是自定义扫描框的类
在这两行代码之间我们画上文字提示
然后在看下扫描界面效果图:
4、解决扫描界面相机预览拉伸变形问题
实现了上面几步的优化,仔细的同学可能会发现如果我们给SurfaceView设置全屏显示(可以看到的相机画面很多),會发现相机拍摄出来的预览图有些拉伸变形
原因:zxing横屏变竖屏之后Camera的代码还是采用的横屏代码设置的参数
完成之后,在进行扫描操作这时候相机拍出来的预览界面就正常显示,不再有拉伸变形问题
至此便给项目引入了一个可以使用的二维码模块功能了。
最近做一个android项目需求是登录页媔加入微信二维码扫码登录入口(类似于PC端扫一扫登录),用户打开微信APP扫描二维码,点击登录即可当时也看了官网的相关介绍,确實踩了不少坑写这个博客记录下。
四、生成扫码登录的签名