• zxing条码扫描横屏修改


    zxing包默认是横屏扫描一维条码,用户体验上不是很方便需要换手翻转手机。

    这两天查了查相关资料,解决方法如下:

    1.在DecodeHandler.java中,修改decode方法
    PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(data, width, height);

    byte[] rotatedData = new byte[data.length];
    for (int y = 0; y < height; y++) {
    for (int x = 0; x < width; x++)
    rotatedData[x * height + height - y - 1] = data[x + y * width];
    }
    int tmp = width; // Here we are swapping, that's the difference to #11
    width = height;
    height = tmp;

    PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(rotatedData, width, height);

    2.在CameraManager.java中,注释代码:
    // rect.left = rect.left * cameraResolution.x / screenResolution.x;
    // rect.right = rect.right * cameraResolution.x / screenResolution.x;
    // rect.top = rect.top * cameraResolution.y / screenResolution.y;
    // rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y;
    修改为
    rect.left = rect.left * cameraResolution.y / screenResolution.x;
    rect.right = rect.right * cameraResolution.y / screenResolution.x;
    rect.top = rect.top * cameraResolution.x / screenResolution.y;
    rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;

    3.在CameraConfigurationManager.java中,在setDesiredCameraParameters方法中添加一句
    camera.setDisplayOrientation(90);

    4.在AndroidManifest.xml中,把Activity的属性android:screenOrientation="landscape"
    改为
    android:screenOrientation="portrait"

    编译运行即可!

    5.修改取景框大小
    在CameraManager.java中,把getFramingRect()方法中

    //framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);

    framingRect = new Rect(0, topOffset, leftOffset+leftOffset + width, topOffset + height);

  • 相关阅读:
    深入探索 高效的Java异常处理框架
    Java多线程调试如何完成信息输出处理
    WebKit学习资源
    WebKit阅读起步
    Redis学习资源
    webkit在vs2008中编译
    【转】推荐几本学习MySQL的好书-MySQL 深入的书籍
    Mysql: 开启慢查询日志[ERROR] unknown variable 'log-slow-queries'处理办法
    Linux top命令详解
    eclipse svn同步过滤掉某些不需要同步的文件
  • 原文地址:https://www.cnblogs.com/MyBlog-/p/7274012.html
Copyright © 2020-2023  润新知