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

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

基于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. 数据恢复工具--extundelete的安装与使用

    1.extundelete的恢复原理 extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息,来获得当前文件系统下所有文件的信息,包括存在的和已 ...

  2. 如何让Excel单元格中的名字分散对齐

    1 操作方式 开始->对齐方式->对齐->水平对齐->分散对齐(缩进) 2 优势 不会破坏数据的有效性

  3. Error:Execution failed for task :app:transformClassesWithInstantRunForDebug解决方案

    转自https://blog.csdn.net/student9128/article/details/53026990

  4. 轻松制作X86 OPENWRT USB启动盘

    本文介绍了一个x86 live USBi启动盘的制作方法. 该方法有如下特点: 1.  可在winXP/win 7/win vista上制作, U盘采用fat格式, 即使对于linux经验较少者, 也 ...

  5. VS调试提示“无法启动程序,“...exe”。系统找不到指定文件

    当VS调试提示上图所示的警告时,常用的方法是检查“项目”-“属性”-“配置属性”-“常规”-“输出目录”里的路径 项目”-“属性”-“配置属性”-“链接器”-“常规”-“输出文件”里的路径,是否一致, ...

  6. idea本地跑代码和链接开发机设置

  7. hadoop的hdfs中的javaAPI操作

    package cn.itcast.bigdata.hdfs; import java.net.URI; import java.util.Iterator; import java.util.Map ...

  8. html: 仿制soundmanager2右上角面板

    仿制 http://schillmania.com/projects/soundmanager2/#volume 右上角面板 <style type="text/css"&g ...

  9. 关于PS的操作

    1.移动工具 Ctrl+J:拷贝图层 Ctrl+T:自由变换调整大小 Alt+Shift:全选 Ctrl+G:图层编组 Alt+Delete:选中图层填充当前颜色 Ctrl+Alt+Z:后退一步 2. ...

  10. 【转】修改mysql数据库的用户名和密码

    修改mysql数据库的用户名和密码 更改密码 mysql -u root -p Enter password:*** mysql>use mysql; 选择数据库 Database change ...