一.扫描二维码

1.依赖:

1.1.添加到你的 Project  Build.gradle:allprojects {repositories {...maven { url 'https://jitpack.io' }}
}1.2.添加到你的 Module  Build.gradle:dependencies {compile 'com.github.qingmei2:QrCodeScannerView-Android:1.1'compile 'com.google.zxing:core:3.2.1'
}

2.直接在你的布局文件xml中使用

 <FrameLayoutandroid:id="@+id/fl_container"android:layout_width="match_parent"android:layout_height="match_parent"><com.mei_husky.library.view.QRCodeScannerViewandroid:id="@+id/scanner_view"android:layout_width="match_parent"android:layout_height="match_parent" /><com.mei_husky.library.view.QRCoverViewandroid:id="@+id/cover_view"android:layout_width="match_parent"android:layout_height="match_parent" /></FrameLayout>

3.代码部分:

   private QRCodeScannerView mScannerView;private QRCoverView mCoverView;private final int PERMISSION_REQUEST_CAMERA = 0;@Overridepublic int getLayoutResId() {return R.layout.activity_erweima;}@Overrideprotected void initView() {mScannerView = (QRCodeScannerView) findViewById(R.id.scanner_view);mCoverView = (QRCoverView) findViewById(R.id.cover_view);}@Overrideprotected void initListener() {//自动聚焦间隔2smScannerView.setAutofocusInterval(2000L);//闪光灯mScannerView.setTorchEnabled(true);//修改扫描框外背景色mCoverView.setCoverViewOutsideColor(R.color.xb_bg1);//修改四个脚的颜色mCoverView.setCoverViewCornerColor(R.color.egg_red );//不显示扫描线mCoverView.setShowLaser(false);//扫描框的宽度和高度mCoverView.setCoverViewScanner(220, 220);//提交修改UI//扫描结果监听处理mScannerView.setOnQRCodeReadListener(new QRCodeScannerView.OnQRCodeScannerListener() {@Overridepublic void onDecodeFinish(String text, PointF[] points) {Log.d("tag", "扫描结果 : " + text); //扫描到的内容scannerResult(text);}});//相机权限监听mScannerView.setOnCheckCameraPermissionListener(new QRCodeScannerView.OnCheckCameraPermissionListener() {@Overridepublic boolean onCheckCameraPermission() {if (ContextCompat.checkSelfPermission(act, Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED) {return true;} else {ActivityCompat.requestPermissions(act, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST_CAMERA);return false;}}});}/*** 权限请求回调** @param requestCode* @param permissions* @param grantResults*/@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults) {if (requestCode != PERMISSION_REQUEST_CAMERA) {return;}if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {mScannerView.grantCameraPermission();}}@Overrideprotected void initData(boolean isNetWork) {title.setText("扫瞄二维码");//开启后置摄像头mScannerView.setBackCamera();}/*** 二维码扫描结果* @param text*/private void scannerResult(String text) {}@Overrideprotected void onResume() {super.onResume();mScannerView.startCamera();}@Overrideprotected void onPause() {super.onPause();mScannerView.stopCamera();}

二.生成二维码静态方法:

 public static Bitmap Create2DCode2(String text)  {//生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");hints.put(EncodeHintType.MARGIN, 0);BitMatrix matrix = null;try {matrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 400, 400,hints);} catch (WriterException e) {e.printStackTrace();}int width = matrix.getWidth();int height = matrix.getHeight();//二维矩阵转为一维像素数组,也就是一直横着排了int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {if(matrix.get(x, y)){pixels[y * width + x] = 0xff000000;} else {pixels[y * width + x] = 0xffffffff;}}}Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);//通过像素数组生成bitmap,具体参考apibitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;}

三.解析url的工具类:

public class UrlUtils {

    /**** 获取url 指定name的value;* @param url* @param name* @return*/public static String getValueByName(String url, String name) {String result = "";int index = url.indexOf("?");String temp = url.substring(index + 1);String[] keyValue = temp.split("\\&");for (String str : keyValue) {if (str.contains(name)) {result = str.replace(name + "=", "");}}return result;}
}

至此二维码功能集成完毕,源码地址.在此感谢我的朋友却把清梅嗅对我的帮助!

app生成二维码,扫描二维码相关推荐

  1. iOS-长按识别二维码/生成二维码/扫描二维码

    参考:http://www.jianshu.com/p/997cec333822 参考:https://github.com/nglszs/BCQRcode 方式一:长按识别二维码 #import & ...

  2. iOS AV Foundation 二维码扫描 02 扫码

    AVFoundation支持以下一维和二维码的扫描: QR code Aztec EAN13 EAN8 UPC-E PDF417 Code 93 Code 39 Code 39 mode 41 QR ...

  3. 【Android】条形码/二维码扫描——ZXing源码分析及相关jar包导入

    转载自:http://blog.csdn.net/u010574567/article/details/51916604 *********************1.源码分析************ ...

  4. 基于Zxing的二维码生成和二维码扫描

    最近又在倒腾二维码,发现网上的教程都不够用,所以把之前整合的二维码Demo有拿出来重新添加些功能,这里也算是重新学习吧! 当然对于二维码,相信大家都很熟悉了.这里就不多说.本项目是基于Zxing的开源 ...

  5. Android 简单直接--无需jar包zing实现生成、扫描二维码

    Zing 导入依赖 生成二维码 扫描二维码 扫描回调 工具类 设置竖屏扫描 不多逼逼,直接上代码 导入依赖 implementation 'com.google.zxing:core:3.3.0' i ...

  6. Unity之生成扫描二维码

    Unity之生成扫描二维码 Unity之生成扫描二维码 前言 开篇 Unity版本及使用插件 正题 前期准备 首先生成二维码 然后需要扫描二维码 该使用了 挂载脚本绑定按钮和输入框 运行内容 生成二维 ...

  7. Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)...

    二维码的扫描,二维码的锁定与描边,二维码的扫描范围,二维码的生成(高清,无码,你懂得!),识别相册中的二维码 扫描二维码用到的三个重要对象的关系,如图: 1.懒加载各种类 // MARK: - 懒加载 ...

  8. 二维码扫描和应用跳转

    转载自: http://sindrilin.com/ios-dev/2015/11/01/二维码扫描和应用跳转.html 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫 ...

  9. iOS开发-二维码扫描和应用跳转

    iOS开发-二维码扫描和应用跳转   序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

最新文章

  1. 苹果加急审核详细步骤
  2. 2018年全国多校算法寒假训练营练习比赛(第二场)B - TaoTao要吃鸡
  3. Tech Ed上Windows 7值得关注的课程
  4. 解决 Out of range value adjusted for column 'ID' at row 1
  5. Show percentage use PHP
  6. 数据结构-----AVL树的旋转操作
  7. 坦克大战代码_坦克大战系列文章-坦克大战简介
  8. 在ASP.NET使用javascript的一点小技巧(转www.chinacs.net 中文C#技术站 )
  9. android 录音原始文件_Android 11可能最终会取消Android对视频录制的4GB文件大小限制...
  10. Android Debug Bridge 技术实现原理
  11. C. Valera and Elections DFS
  12. java简介 ppt 精,TP1java简介.ppt
  13. matlab whos命令
  14. 《IT项目管理》读书笔记(1) —— 概述
  15. Jsp链接传值中文乱码问题解决
  16. Java学习电子书大全
  17. 怎么查看自己java程序的源码
  18. PCB Dk、Df和介质损耗
  19. 2010年4月2日 晴
  20. 高通平台的usb2.0测试_深圳格拉布斯研究院全自动高通量催化剂制备及筛选设备已正式启用...

热门文章

  1. 【Linux】孤儿进程 | 环境变量 | 命令行参数 | 进程优先级
  2. android屏幕大小字体大小,文字大小和不同的Android屏幕尺寸
  3. 计算机复试题目(三)机组部分,哈尔滨工业大学2020计算机基础考研真题
  4. Standard 1.1.x VM与Standard VM的区别
  5. 搜狗输入法皮肤中心等显示网络不给力的解决方法
  6. win7/win8/win8.1下JDK安装与配置
  7. win7驱动预安装分享【xp/win8/win10的可以参考】
  8. 南瑞通讯管理机测试软件,国电南瑞NSC2200E 通讯管理机
  9. uva 12260 Free Goodies DP+一点点贪心
  10. MES仓库管理源码 源码 源码