最近项目条码扫描要改为横屏,网上所搜了一下,然后发现我写的需要改动几行代码就可以了,还是很给力的。

如未查看之前的代码,请移步:

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

修改下面写代码就可以实现横屏条码扫描了

具体代码修改如下:

1、修改 activity配置文件

  1. <activity
  2. android:name=".CaptureActivity"
  3. android:configChanges="orientation|keyboardHidden"
  4. android:label="@string/app_name"
  5. android:screenOrientation="portrait"
  6. android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
  7. android:windowSoftInputMode="stateAlwaysHidden" >
  8. </activity>

android:screenOrientation="portrait" 是关键 默认是landscape

2、修改CameraConfigurationManager.java中的setDesiredCameraParameters函数,

在    camera.setDisplayOrientation(90);

改成    camera.setDisplayOrientation(0);

3、修改CameraManager.java的getFramingRectInPreview()函数中修改成:

  1. rect.left = rect.left * cameraResolution.x / screenResolution.x;
  2. rect.right = rect.right * cameraResolution.x /
  3. screenResolution.x;
  4. rect.top = rect.top * cameraResolution.y / screenResolution.y;
  5. rect.bottom = rect.bottom * cameraResolution.y /
  6. screenResolution.y;

4、修改DecodeHandler.java中的decode函数,

  1. //    byte[] rotatedData = new byte[data.length];
  2. //    for (int y = 0; y < height; y++) {
  3. //        for (int x = 0; x < width; x++)
  4. //            rotatedData[x * height + height - y - 1] = data[x + y * width];
  5. //    }
  6. //    int tmp = width; // Here we are swapping, that's the difference to #11
  7. //    width = height;
  8. //    height = tmp;
  9. //
  10. PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(data, width, height);

然后修改函数中的变量,将rotatedData修改成data;

这样就能够实现横屏扫描了。

如果还需要改动扫描框的大小需要去CameraManager类里面改动:

  1. //改变扫描框的最大、最小长宽
  2. private static final int MIN_FRAME_WIDTH = 240;
  3. private static final int MIN_FRAME_HEIGHT = 240;
  4. private static final int MAX_FRAME_WIDTH = 720;
  5. private static final int MAX_FRAME_HEIGHT = 480;

好了,这样就可以很简单的是实现横屏扫描了。

基于Zxing的二维码的二维码扫描之横屏扫描的更多相关文章

  1. 【转】 Android 基于google Zxing实现对手机中的二维码进行扫描--不错

    原文网址:http://blog.csdn.net/xiaanming/article/details/14450809 转载请注明出处:http://blog.csdn.net/xiaanming/ ...

  2. 基于zxing的二维码(网格)扫描

    基于zxing的二维码(网格)扫描 前言:对于二维码扫描我们使用的是开源框架Zxing或者Zbar,这里使用基于zxing的二维码扫描,类似支付宝网格扫描, 二维码原理介绍: 二维码是用某种特定的几何 ...

  3. 基于ZXing.Net生成一维二维码

    新阁教育-喜科堂付工原创 最近很多小伙伴对一维码.二维码比较感兴趣,今天主要给大家分享一个C#生成条形码和二维码的案例. C#作为一个高级语言,特点就是快! 我们使用的是开源库ZXing,ZXing是 ...

  4. Android 基于google Zxing实现对手机中的二维码进行扫描

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的 ...

  5. .NET使用ZXing.NET生成中间带图片的二维码

    很久之前就有写这样的代码了,只是一直没记录下来,偶然想写成博客. 把之前的代码封装成函数,以方便理解以及调用. 基于开源的 ZXing.NET 组件,代码如下: 先添加对ZXing.NET的引用,然后 ...

  6. 基于SignalR的消息推送与二维码描登录实现

    1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...

  7. C#使用zxing,zbar,thoughtworkQRcode解析二维码,附源代码

    最近做项目需要解析二维码图片,找了一大圈,发现没有人去整理下开源的几个库案例,花了点时间 做了zxing,zbar和thoughtworkqrcode解析二维码案例,希望大家有帮助. zxing是谷歌 ...

  8. ZXing拍摄代码扫描之后以区分一维码、二维码、其他代码

    我怎么有二维码没有联系,最近遇到一个问题,,如何推断条码扫描到一维代码或者二维代码,辛苦了一个下午下班后自己,加上网上跟踪信息. 总结出两种方式能够解决该问题(推荐採用另外一种方式): 1.改动源代码 ...

  9. 在云平台上基于Go语言+Google图表API提供二维码生成应用

    二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...

随机推荐

  1. <Numerical Analysis>(by Timothy Sauer) Notes

    2ed,  by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...

  2. python导入requests库一直报错原因总结 (文件名与库名冲突)

    花了好长时间一直在搞这个 源代码: 一直报如下错误: 分析原因: 总以为没有导入requests库,一直在网上搜索各种的导入库方法(下载第三方的requests库,用各种命令工具安装),还是报错 后来 ...

  3. Windows下,python pip安装时ReadTimeoutError解决办法

    一般情况下PIP出现ReadTimeoutError都是因为被GFW给墙了,所以一般遇到这种问题,我们可以选择国内的镜像来解决问题. 在Windows下: C:\Users\Administrator ...

  4. Vue--父子组件之间的传值

    1.父传子 1.在父组件中给子组件绑定动态属性 <v-home :title="title"></v-home> 2.在子组件中用propos[]接收 ex ...

  5. 边缘触发(Edge Trigger)和条件触发(Level Trigger)

    int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout);     sele ...

  6. 【产品设计】【转】APP界面设计规范编写指南(人人都是产品经理)

    转自 :http://www.woshipm.com/ucd/608557.html 作者:EID_UX_DESIGN,微信公众号:EID_center 原文地址:http://www.ui.cn/d ...

  7. bower install的时候报错

    安装错误提示:C:\Scott>bower install bootstrap bower not-cached git://github.com/twbs/bootstrap.git#* bo ...

  8. python中 函数名加括号与不加括号

    加括号是返回函数的结果,不加括号相当于函数的调用.

  9. Entity Frame Code First 简易教程

    简介 什么是ORM 搭建Entity FrameWork CodeFirst应用 数据库迁移 表属性常见配置 Entity FrameWork 一对多.多对多 一.简介 Entity Framewor ...

  10. Python 多线程、进程

    本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...