版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/aaawqqq/article/details/24804939

Zxing 竖屏切换  android

在google上下载的ZxingDemo 为横屏状态

我简单的在Androidmanifest.xml把Activity换成竖屏android:screenOrientation="portrait"

屏幕尽管正了 可是屏幕上显示的拍摄画面还是横着的

查了一些网上的资料   结合自己手工调试

在这里总结分享一下

步骤:

1)   在AndroidManifest.xml中把  <Activity  />标签  CaptureActivity 的screenOrientation改动为

android:screenOrientation="portrait"

2)  在CameraManager.java类中的getFramingRectInPreview()替换掉原先的 left right top bottom

      //竖屏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中void setDesiredCameraParameters(Camera camera)方法

在setParameters之前添加

camera.setDisplayOrientation(90);

4)  在DecodeHandler.java中的 decode(byte[] data, int width, int height)方法在

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; data = rotatedData;

5)  将CameraConfigurationManager的  initFromCameraParameters(Camera camera)方法整个替换例如以下

该方法防止竖屏后屏幕拉伸

   /*** Reads, one time, values from the camera that are needed by the app.*/void initFromCameraParameters(Camera camera) {Camera.Parameters parameters = camera.getParameters();previewFormat = parameters.getPreviewFormat();previewFormatString = parameters.get("preview-format");Log.d(TAG, "Default preview format: " + previewFormat + '/'+ previewFormatString);WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = manager.getDefaultDisplay();screenResolution = new Point(display.getWidth(), display.getHeight());Log.d(TAG, "Screen resolution: " + screenResolution);Point screenResolutionForCamera = new Point();   screenResolutionForCamera.x = screenResolution.x;   screenResolutionForCamera.y = screenResolution.y;   // preview size is always something like 480*320, other 320*480if (screenResolution.x < screenResolution.y) {  screenResolutionForCamera.x = screenResolution.y;  screenResolutionForCamera.y = screenResolution.x;}cameraResolution = getCameraResolution(parameters, screenResolutionForCamera);
//      cameraResolution = getCameraResolution(parameters, screenResolution);Log.d(TAG, "Camera resolution: " + screenResolution);}

至此Zxing 横屏就切换为竖屏

不足之处请在下方留言  谢谢

希望对您实用

资源下载地址:http://download.csdn.net/detail/aaawqqq/7281577

转载于:https://www.cnblogs.com/xfgnongmin/p/10867300.html

Zxing 竖屏切换 android相关推荐

  1. Zxing 竖屏切换 android

    2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/aaawqqq/article/details/24804939 转载于:https ...

  2. Android 模拟器横屏竖屏切换设置

    Android 模拟器横屏竖屏切换设置 时间:2012-07-04   来源:设计与开发   作者:Daniel   点击:5571 摘要:  Android 模拟器旋转,横屏.竖屏切换设置,andr ...

  3. android 【禁止横屏和竖屏切换】

    android [禁止横屏和竖屏切换] 相关搜索: android android [禁止横屏和竖屏切换] 在某些场合可能需要禁止横屏和竖屏切换,实现这个要求很简单,只要在AndroidManifes ...

  4. Android横屏竖屏切换的问题

    转自:http://blog.sina.com.cn/s/blog_77c632410101790w.html 一.禁止横竖屏转换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为 ...

  5. vue手机端横屏竖屏切换

    1.建一个空白的vue文件,添加上如下代码 data() { this.$router.go(-1) return {} } 2.在需要横屏竖屏切换的页面中加入如下代码: beforeMount() ...

  6. android 横屏finish 会变竖屏,[android] Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化...

    生命周期 Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情. 例举了 7 个常用的钩子:protected void onCreate(Bund ...

  7. android 手机屏幕横屏竖屏切换

    第一篇博客哦~ 本例子是实现简单的屏幕横竖切换的. 主要知识点: getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRA ...

  8. 解决Android二维码扫描ZXing竖屏拉伸变长闪退扫描区域小等问题

    Android 基于google Zxing实现二维码.条形码扫描,仿微信二维码扫描效果 这篇文章写的不错,但是按照这篇文章使用二维码的话会出现竖屏扫描图像拉伸变长的问题(有一个地方计算错误),解决拉 ...

  9. android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...

    详细问题描述 [内容] 我们做了一个手机签名的功能,签名的时候是横屏的,签完后返回前一页重新还原成竖屏,但是在有的安卓机型上不能正常还原. 重现步骤 [步骤] 1.进入页面横屏,做签名操作, 2.关闭 ...

最新文章

  1. 编译x86架构的openwrt系统,让笔记本从u盘启动openwrt
  2. javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点
  3. 离线安装NLTK工具包
  4. Oracle PL/SQL之NEXT_DAY - 取得下一个星期几所在的日期
  5. [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
  6. 数据采集的目的是什么
  7. Linux升级glibc版本汉字乱码,glibc版本升级
  8. 数据架构选型必读:2021上半年数据库产品技术解析
  9. 使用天气api接口调用
  10. [Go实战]怎么写测试类,运用testing.T
  11. 细讲如何对NFA确定化和最小化
  12. [转载]如何在非443端口开https
  13. ORA-12528问题解决 与 静态注册
  14. 【PYTHON】论Python的类中的私有变量、共有变量、全局变量、局部变量
  15. C#如何开发扫雷游戏
  16. RedHatAS4U3下实现南北互通的DNS配置
  17. linux qt 导入gl库,Ubuntu下QtOpenGL无法正常使用GLU库的解决方法
  18. 数据库编程入门(一)-PL/SQL快速入门
  19. 【XJTUSE 计算机组成与结构笔记】第十七章 并行处理
  20. TRMM降水数据下载步骤

热门文章

  1. 美参议员敦促SEC就雅虎黑客案信息披露义务展开调查
  2. 社交系统/社群系统ThinkSNS+ alpha.2 版本发布!
  3. JavaScript函数与Window对象
  4. Android项目Build报错Unable to execute dx(65535问题解决方案)
  5. bootstrap 全局 CSS 样式
  6. LINQ系列:LINQ to SQL Select查询
  7. mysql学习【第10篇】:数据库之索引与慢查询优化
  8. 从零开始学习hadoop之发行版选择
  9. 交换机定时自动备份配置文件的方法
  10. 文件操作之按照字符读写文件