Android怎么实现二维码扫描和生成功能
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要讲解了"Android怎么实现二维码扫描和生成功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现二维码扫描和生成功能
千家信息网最后更新 2025年11月09日Android怎么实现二维码扫描和生成功能
这篇文章主要讲解了"Android怎么实现二维码扫描和生成功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现二维码扫描和生成功能"吧!
1.demo展示如下:
1.1demo首页

1.2扫描界面

可以根据需求修改,我实际项目中界面截图如下:
1.3生成二维码
2.引入文件
2.1 下载demo,拷贝demo中的com.google.zxing5个包和com.utils包引入到自己的项目中。
2.2 拷贝本项目demo中的布局activity_scanner.xml和toolbar_scanner.xml
2.3 拷贝资源目录raw至本项目中,beep.ogg是扫描成功时的提示音。
2.4 拷贝或合并文件内容attrs.xml/colors.xml/ids.xml三个文件。
2.5 build.gradle文件中添加引用
compile 'com.google.zxing:core:3.3.0'
2.6 修改R文件引用路径 修改以下4个文件中的R文件引用地址,引用本项目的R
//com.google替换成自己项目的包名即可com.google.zxing.activity.CaptureActivitycom.google.zxing.decoding.CaptureActivityHandlercom.google.zxing.decoding.DecodeHandlercom.google.zxing.view.ViewfinderView
3. 权限配置
3.1 AndroidManifest.xml中添加权限申请代码:
4. 功能实现
完成上述集成之后,通过调用CaptureActivity就可以实现扫码功能。 MainActivity源码部分:
public class MainActivity extends AppCompatActivity { @BindView(R.id.openQrCodeScan) Button openQrCodeScan; @BindView(R.id.text) EditText text; @BindView(R.id.CreateQrCode) Button CreateQrCode; @BindView(R.id.QrCode) ImageView QrCode; @BindView(R.id.qrCodeText) TextView qrCodeText; //打开扫描界面请求码 private int REQUEST_CODE = 0x01; //扫描成功返回码 private int RESULT_OK = 0xA1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick({R.id.openQrCodeScan, R.id.CreateQrCode}) public void onClick(View view) { switch (view.getId()) { case R.id.openQrCodeScan: //打开二维码扫描界面 if(CommonUtil.isCameraCanUse()){ Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, REQUEST_CODE); }else{ Toast.makeText(this,"请打开此应用的摄像头权限!",Toast.LENGTH_SHORT).show(); } break; case R.id.CreateQrCode: try { //获取输入的文本信息 String str = text.getText().toString().trim(); if(str != null && !"".equals(str.trim())){ //根据输入的文本生成对应的二维码并且显示出来 Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500); if(mBitmap != null){ Toast.makeText(this,"二维码生成成功!",Toast.LENGTH_SHORT).show(); QrCode.setImageBitmap(mBitmap); } }else{ Toast.makeText(this,"文本信息不能为空!",Toast.LENGTH_SHORT).show(); } } catch (WriterException e) { e.printStackTrace(); } break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //扫描结果回调 if (resultCode == RESULT_OK) { //RESULT_OK = -1 Bundle bundle = data.getExtras(); String scanResult = bundle.getString("qr_scan_result"); //将扫描出的信息显示出来 qrCodeText.setText(scanResult); } }}5. 源码分析
5.1打开二维码扫描界面
//打开二维码扫描界面 if(CommonUtil.isCameraCanUse()){ Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, REQUEST_CODE); }else{ Toast.makeText(this,"请打开此应用的摄像头权限!",Toast.LENGTH_SHORT).show(); }5.2 根据输入的文本生成对应的二维码并且显示出来
try { //获取输入的文本信息 String str = text.getText().toString().trim(); if(str != null && !"".equals(str.trim())){ //根据输入的文本生成对应的二维码并且显示出来 Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500); if(mBitmap != null){ Toast.makeText(this,"二维码生成成功!",Toast.LENGTH_SHORT).show(); QrCode.setImageBitmap(mBitmap); } }else{ Toast.makeText(this,"文本信息不能为空!",Toast.LENGTH_SHORT).show(); } } catch (WriterException e) { e.printStackTrace(); }5.3 扫描结果回调
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //扫描结果回调 if (resultCode == RESULT_OK) { //RESULT_OK = -1 Bundle bundle = data.getExtras(); String scanResult = bundle.getString("qr_scan_result"); //将扫描出的信息显示出来 qrCodeText.setText(scanResult); } }感谢各位的阅读,以上就是"Android怎么实现二维码扫描和生成功能"的内容了,经过本文的学习后,相信大家对Android怎么实现二维码扫描和生成功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
二维
二维码
生成
文件
文本
功能
信息
界面
项目
输入
成功
拷贝
权限
内容
结果
学习
摄像头
源码
应用
摄像
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
四川第三方软件开发多少钱
在线教育软件开发的未来前景
数据库的列变为行
ug刀具数据库部件材料
kdb数据库的环境变量
网络安全框架图片大全
移动互联及应用和软件开发
9月1日实施网络安全的新法规
广州佳佳融信息科技互联网
神通数据库查看版本号
郑州千叶互联网科技
代理服务器 账户安全
带网络安全模式如何开qq
mysql数据库如何选择索引
网络安全教育对学校的重要性
堡垒之夜客户端与服务器不兼容
下载下载我的世界宝可梦服务器
如何删除sql数据库
大参林软件开发
关于校园网网络安全的论文
江苏企业软件开发诚信服务
股票软件开发人员工资
正规网络安全方案厂家
服务器安全狗文件
操作系统适合作为服务器操作系统
rabbitmq订阅数据库
c语言数据库操作
视频剪切软件开发
四大安保期间网络安全
网络安全承办城市2020