这方面的文章也不少,我就当做是一个笔记吧!
首先导入Zxing的Model,这个网上有很多,下载地址:http://download.youkuaiyun.com/detail/wangbin1992321/9557850
Android Studio直接导入然后添加以来即可
直接上代码
这个是布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clicl"
android:text="进入扫描二维码页面" />
<ImageView
android:id="@+id/butto"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
ImageView是Activity启动就会显示一个带有logo的二维码!Button点击进入扫描的Activity!够简单吧!
生成二维码的方法是
EncodingUtils下的createQRCode方法!有四个参数分别是1、二维码的原字符串;2、宽度;3。高度;4,就是logo的bitmap对象如果不需要logo那么可以第四个蚕食为null即可!动态获取摄像头权限从而进入扫描页面打开摄像头这里需要注意一下不能用public void clicl(View v) { //动态获取权限 if (Build.VERSION.SDK_INT >= 23) { //检查是否获得摄像头权限 int checkCamera = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA); //判断是否获得 如果没有请求该权限 if (checkCamera != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 123); return; } } startActivity(new Intent(this, CaptureActivity.class)); }permission_group 我只知道试了没有用,但是具体为什么也没注意,如果有人知道麻烦请告诉我一下啊,谢谢!接下来处理获取权限的回调@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case 123: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { startActivity(new Intent(this, CaptureActivity.class)); } else Toast.makeText(this, "对不起!请允许程序获得打开摄像头权限", Toast.LENGTH_LONG).show(); break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }
案例的源码地址:http://download.youkuaiyun.com/detail/wangbin1992321/9557843
本文详细介绍如何在Android应用中实现二维码的生成与扫描功能。包括导入Zxing库、生成带Logo的二维码、动态获取摄像头权限及扫描实现等关键步骤。
7204

被折叠的 条评论
为什么被折叠?



