`
oppal
  • 浏览: 10241 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Zxing2.1完美竖屏扫描,取景框不会变形【转】

 
阅读更多
1.修改manifest文件,将CaptureActivity设为portrait

          android:screenOrientation="portrait"



2.在DecodeHandler.java文件中,找到decode(byte[],int,int)方法,在buildLuminanceSource调用前,加上如下:

          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; 
          width = height;
          height = tmp;

          data = rotatedData;




3.在CameraManager.java中找到getFramingRectInPreview()方法, 替换相应代码

         
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;

4.在CameraConfigurationManager.java里找到setDesiredCameraParameters()方法,在
  camera.setParameters(parameters)之前加入

        
 camera.setDisplayOrientation(90);


5.这一步最关键了,之前有人说是去掉一部分代码,这样会导致扫描的东西变扁。正确的方法应该为:在CameraConfigurationManager.java里找到initFromCameraParameters(Camera camera)方法,改为

          Camera.Parameters parameters = camera.getParameters();
          WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE);
          Display display = manager.getDefaultDisplay();
          int width = display.getWidth();
          int height = display.getHeight();
          if (width < height) {
               int temp = width;
               width = height;
               height = temp;
          }
          screenResolution = new Point(height, width);
          cameraResolution = findBestPreviewSizeValue(parameters, new Point(width, height));


把这个方法内容全部替换成以上代码就OK啦,大功告成!
转自 http://blog.csdn.net/bxs412/article/details/8616054
分享到:
评论

相关推荐

    Zxing2.1竖屏完美设置

    在本文中,我们将深入探讨如何在ZXing 2.1版本中实现竖屏模式的完美设置。 首先,我们需要修改AndroidManifest.xml文件。在ZXing的默认配置中,CaptureActivity通常被设置为横屏模式。为了改为竖屏,你需要找到...

    zxing竖屏二维码扫描

    在默认情况下,ZXing库设计的扫描界面可能更适合横屏使用,扫描框较小,这可能导致在竖屏模式下用户需要将手机非常靠近二维码才能正确扫描,这并不符合用户的使用习惯。为了改善这种情况,我们需要对ZXing的扫描界面...

    zxing二维码竖屏扫描

    标题"ZXing二维码竖屏扫描"指出我们关注的是在竖屏模式下使用ZXing进行二维码扫描的场景。在Android应用开发中,由于大部分用户习惯于竖屏使用手机,因此确保在竖屏模式下的扫描体验良好是非常重要的。ZXing库本身...

    zxing 竖屏完美解决

    综上所述,"zxing 竖屏完美解决"是关于如何在Android应用中使用ZXing库,特别是在竖屏模式下,确保二维码图像的显示和扫描功能的稳定性和用户体验。这个解决方案涵盖了Android开发的多个方面,包括屏幕适配、库集成...

    Android Zxing 扫描条码实现竖屏模式

    它可能包含了如何在ZXing库基础上进行修改,以适应竖屏扫描和旋转相机的详细说明。 综上所述,实现Android Zxing在竖屏模式下扫描条码并处理摄像头90度旋转的关键在于: 1. 自定义`CameraManager`以适应竖屏显示,...

    Android zxing3.2完美横屏改竖屏

    4. **调整捕获框**:ZXing的扫描框(红色四边形)可能也需要调整,以适应竖屏模式。这可能涉及到`ViewfinderView`类的修改。 5. **处理权限和相机设置**:确保在竖屏模式下,应用程序仍能正确请求和使用相机权限。...

    Android Zxing竖屏扫描二维码

    【Android Zxing竖屏扫描二维码】是Android平台上实现二维码快速、精准扫描的一种技术应用。Zxing,全称为“ZXing(”zebra crossing“的缩写,斑马线)”,是一个开源的、跨平台的条码扫描库。在Android开发中,...

    四步将ZXing横屏改竖屏方法.pdf

    本文介绍了如何通过修改ZXing源代码,将默认的横屏扫描界面改为竖屏扫描,具体以Delphi环境和Android平台为例,逐步说明了实现过程。 首先,在Delphi环境中调用ZXing源代码实现扫码功能时,可能会发现显示的界面...

    zxing-2.1.jar

    这个"zxing-2.1.jar"文件是ZXing库的一个版本,尽管不是最新版,但依然能够满足基本的条形码处理需求。在许多应用中,如零售、物流、文档管理等领域,条形码的自动识别和处理是不可或缺的功能,ZXing库就为此提供了...

    zxing 2.1 核心库

    最新zxing版本,编译好的zxing,生成二维码,解码二维码,一维码,条形码

    Zxing二维码扫描,竖屏仿QQ扫一扫

    为了模仿QQ扫一扫的效果,我们还可以添加一些额外的功能,如实时扫描框高亮、扫描结果的动画反馈、错误处理提示等。此外,为了提高用户体验,可以考虑添加扫描历史记录、保存常用二维码等功能。 在实际开发过程中,...

    ZXing 2.1版GBK中文乱码解决办法

    ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...

    ZXing2.1 条码/二维码扫描识别

    ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. Our focus is on using the built-in camera...

    安卓zxing扫描二维码竖屏精简版demo

    【安卓ZXing扫描二维码竖屏精简版Demo详解】 在移动开发领域,二维码已经成为一种常见的数据交换和识别方式。ZXing(Zebra Crossing)是一个开源的、跨平台的二维码和条形码处理库,适用于Java、Android以及其他...

    zxing 2.1包

    google二维码生成zxing-2.1.jar 已经包含core 与javase两个包,把这两个重要的包打包到一个jar中了,完美使用(亲测)

    ZXing-2.1-testdata

    "ZXing-2.1-testdata" 标题和描述表明这是一个针对ZXing 2.1版本的测试数据集,用于验证和测试ZXing库的功能和性能。在进行二维码和条形码识别软件的开发和优化时,这样的测试数据集至关重要,因为它包含了各种可能...

    XE10 Android Zxing 实现竖屏扫二维码.docx

    3. **横屏转竖屏扫描**: 微信的扫码功能默认可能是横屏展示,但大多数手机用户习惯于竖屏操作。因此,将ZXing的扫描界面调整为竖屏模式,是提高用户体验的关键。 4. **Java到Delphi接口**: Delphi XE10不直接支持...

    Android Zxing 转换竖屏扫描且提高识别率的方法

    Android Zxing 转换竖屏扫描且提高识别率的方法可以通过修改 Zxing 库中的源代码来实现,主要包括转竖屏步骤和识别率优化两部分。转竖屏步骤主要是修改 Zxing 库中的 CameraManager 和 DecodeHandler 类,来实现竖屏...

    zxing扫描精简再修改扫描框和识别区

    在"zxing扫描精简再修改扫描框和识别区"的项目中,开发者针对ZXing进行了优化和定制,主要集中在以下几个方面: 1. **精简ZXing**:开发者可能对原始的ZXing库进行了代码优化和裁剪,去除了不必要或者与应用需求...

    ZXing Android二维码/条码扫描,2020Android Studio版本,横竖屏都支持

    ZXing(Zebra Crossing)是Google开发的一个开源...通过合理地集成和配置,开发者可以快速地在自己的应用中加入这一实用功能,而横竖屏的支持则让用户体验更加友好。结合ZXingDemo,学习和实践会变得更加直观和高效。

Global site tag (gtag.js) - Google Analytics