zoukankan      html  css  js  c++  java
  • Google-zxing 扫描二维码(2)

    上一篇我们用Google-chart扫描了二维码,紧接着我们就用Google-zxing在我们的Android小手机上扫描读取二维码中的信息。

    Google-zxing

    Google-zxing简介

    Google-zxingGoogle的一个开源项目可以用来生成或是读取二维码。

    这里我们用来用来扫一扫读取我们生成的二维码。

    秉持的不要重复制造轮子的原则

    原博客地址:原博客地址

    源码地址:http://download.csdn.net/detail/xiaanming/5990219

    Google-zxing存在的小Bug修复

    1.1 Google-zxing原生的取景框太小

    mining.app.zxing.camera 包里面的CameraManager.java,getFramingRect方法获取宽高的部分替换为

    
     DisplayMetrics dm = context.getResources().getDisplayMetrics();
          int width = (int)(dm.widthPixels * 0.6);
          int height = (int)(width * 0.9);
    
          int leftOffset = (screenResolution.x - width) / 2;
          int topOffset = (screenResolution.y - height) / 2;
    
    

    2.2 扫描的时候二维码变形拉伸(zxing默认针对横屏扫描)

    mining.app.zxing.camera 包里面的CameraConfigurationManager.java,findBestPreviewSizeValue方法的newDiff取值

    
    // 修改newDiff 取值
    int newDiff=Math.abs(newY - screenResolution.x) + Math.abs(newX - screenResolution.y);
    
    
    
    

    3.3 距离太近扫不出二维码

    mining.app.zxing.camera

    包里面的CameraConfigurationManager.java,setDesiredCameraParameters方法替换为

    
    Camera.Parameters parameters = camera.getParameters();
    List<Camera.Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes();
    int position =0;
    if(supportedPreviewSizes.size()>2){
      position=supportedPreviewSizes.size()/2+1;//supportedPreviewSizes.get();
    }else {
      position=supportedPreviewSizes.size()/2;
    }
    
    int width = supportedPreviewSizes.get(position).width;
    int height = supportedPreviewSizes.get(position).height;
    Log.d(TAG, "Setting preview size: " + cameraResolution);
    camera.setDisplayOrientation(90);
    cameraResolution.x=width;
    cameraResolution.y=height;
    parameters.setPreviewSize(width,height);
    setFlash(parameters);
    setZoom(parameters);
    camera.setParameters(parameters);
    
    
    

    修改后的Zxing源码

    爱谷歌真是太好了!

    然后我们项目run起来,扫描前面创建的二维码

    outPut

    outPut

  • 相关阅读:
    算法复杂度(Algorithmic Complexity)
    Javascript引用指针
    树(Trees)
    什么是数据挖掘(What is Data Mining?)
    Javascript的声明
    Javascript继承(下)——干嘛要继承
    Linux 中使用 OpenCV
    Java集合类(Java Collections classes)
    哈希查找(Hashing)
    Javascript继承(上)——对象构建
  • 原文地址:https://www.cnblogs.com/chenjy1225/p/9662033.html
Copyright © 2011-2022 走看看