• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android 基于Zxing的二维码的二维码扫描之横屏扫描

android 基于Zxing的二维码的二维码扫描之横屏扫描

作者:晨风的小窝 字体:[增加 减小] 来源:互联网 时间:2017-10-10

晨风的小窝通过本文主要向大家介绍了android二维码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

最近项目条码扫描要改为横屏,网上所搜了一下,然后发现我写的需要改动几行代码就可以了,还是很给力的。
如未查看之前的代码,请移步:
基于Zxing的二维码生成和二维码扫描
修改下面写代码就可以实现横屏条码扫描了
具体代码修改如下:
1、修改 activity配置文件

 

<activity  
            android:name=".CaptureActivity"  
            android:configChanges="orientation|keyboardHidden"  
            android:label="@string/app_name"  
            android:screenOrientation="portrait"  
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
            android:windowSoftInputMode="stateAlwaysHidden" >  
        </activity>  

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

2、修改CameraConfigurationManager.java中的setDesiredCameraParameters函数,
在 camera.setDisplayOrientation(90);
改成 camera.setDisplayOrientation(0);

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

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;  

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

//    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(data, width, height);

然后修改函数中的变量,将rotatedData修改成data;
这样就能够实现横屏扫描了。
如果还需要改动扫描框的大小需要去CameraManager类里面改动:

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

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

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-26Android自定义控件
  • 2017-05-26手机安全卫士——闪屏页相关处理,手机安全卫士
  • 2017-05-26安卓开发 第一篇 关于依赖注入框架dagger2的使用和理解
  • 2017-05-26开发 Material Design+RxJava+Retrofit+MVP App 参考资料,rxjavaretrofit
  • 2017-05-26EditText的setSelection属性,setselection
  • 2017-07-22Android项目开发填坑记
  • 2017-05-26如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion,compilesdkversion
  • 2017-05-26ubuntu下ssh的应用
  • 2017-05-26android环境下的即时通讯,android即时通讯
  • 2017-05-26TextView,iostextview

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • [android] 手机卫士读取联系人,android卫士
    • android MediaPlayer 错误代码(error code)总结 转载,androidmediaplayer
    • ScrollView中嵌套GridView,ListView只显示一行的解决办法,scrollviewgridview
    • 安卓高级组件-----图像切换器,安卓-----切换器
    • android学习第一天(android的介绍和基础):,android第一天
    • android开发游记:meterial design 5.0 新增控件介绍及使用方法
    • Android开发学习——打电话应用,android开发打电话
    • andriod CheckBox,andriodcheckbox
    • Linux内核系列—7.操作系统开发之中断和异常,linux内核
    • popupwindow展示,popupwindow

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有