`

Android Zxing调整扫描区域 优化取图速度

 
阅读更多
Zxing 是google提供的二维码扫描工程
Demo本身默认的扫图区域最大只有 360*480    需要拉开很远的距离才能将整个二维码扫描到
因此需要我们自己调整取图大小

在CameraManager.java这个类中进行调整
默认的大小是 以下这4个参数
[html] view plaincopy在CODE上查看代码片派生到我的代码片
//  private static final int MIN_FRAME_WIDTH = 240; 
//  private static final int MIN_FRAME_HEIGHT = 240; 
//  private static final int MAX_FRAME_WIDTH = 480; 
//  private static final int MAX_FRAME_HEIGHT = 360; 

根据屏幕大小调整      大家可以增大这些数值 : 最小的宽 高    ; 最大宽高

参数实际在 getFramingRect() 方法中起作用
以下是原本Demo中提供的
[java] view plaincopy在CODE上查看代码片派生到我的代码片
/**
  * Calculates the framing rect which the UI should draw to show the user where to place the
  * barcode. This target helps with alignment as well as forces the user to hold the device
  * far enough away to ensure the image will be in focus.
  *
  * @return The rectangle to draw on screen in window coordinates.
  */ 
public Rect getFramingRect() { 
   Point screenResolution = configManager.getScreenResolution(); 
   if (framingRect == null) { 
     if (camera == null) { 
       return null; 
     } 
      
     //原生 
     int width = screenResolution.x * 3 / 4; 
     if (width < MIN_FRAME_WIDTH) { 
       width = MIN_FRAME_WIDTH; 
     } else if (width > MAX_FRAME_WIDTH) { 
       width = MAX_FRAME_WIDTH; 
     } 
     int height = screenResolution.y * 3 / 4; 
     if (height < MIN_FRAME_HEIGHT) { 
       height = MIN_FRAME_HEIGHT; 
     } else if (height > MAX_FRAME_HEIGHT) { 
       height = MAX_FRAME_HEIGHT; 
     } 
     int leftOffset = (screenResolution.x - width) / 2; 
     int topOffset = (screenResolution.y - height) / 2; 
     framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); 
     Log.d(TAG, "Calculated framing rect: " + framingRect); 
   } 
   return framingRect; 


我为了适配不同的屏幕大小将代码改成了
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public Rect getFramingRect() { 
  Point screenResolution = configManager.getScreenResolution(); 
  if (framingRect == null) { 
    if (camera == null) { 
      return null; 
    } 
     
  //修改之后   
  int width = screenResolution.x * 7 / 10; 
  int height = screenResolution.y * 7 / 10; 
   
  int leftOffset = (screenResolution.x - width) / 2; 
  int topOffset = (screenResolution.y - height) / 3; 
  framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); 
     
     
    Log.d(TAG, "Calculated framing rect: " + framingRect); 
  } 
  return framingRect; 

宽高 我占据了屏幕的   7/10
当然...取图改的这么大   会多占一点内存....相应的扫描的时候快得多

以上是实际读取图片的大小
实际的界面美化 在ViewfinderView 这个类当中进行绘制

不足之处请在下方留言  谢谢
希望对您有用
分享到:
评论

相关推荐

    android zxing条码扫描源码

    开发者可以根据需求对Zxing进行定制,比如调整扫描框大小、改变扫描速度、添加解码后的回调函数等。同时,为了提高性能,可以通过硬件加速、多线程处理等方式优化源码。 10. **实际应用** 了解Zxing源码的工作...

    Android zxing二维码扫描个人优化版(第二版)

    这个"Android zxing二维码扫描个人优化版(第二版)"是对原生ZXing库的改进,针对特定需求进行了定制化调整,以提高用户体验和兼容性。以下是关于这个优化版的一些关键知识点: 1. **横竖屏支持**:优化版增加了对...

    Android zxing生成 扫描二维码(依赖形式)

    在Android开发中,ZXing(Zebra Crossing)库是一个广泛使用的开源项目,它提供了二维码和条形码的生成与扫描功能...在实际开发中,还可以根据项目需求进行更深度的定制和优化,比如自定义扫描框样式、调整扫描速度等。

    android 二维码扫描Zxing

    - **性能优化**:根据设备性能调整扫描速度和帧率,平衡性能与耗电。 - **安全性**:确保扫描的数据处理符合隐私政策,避免敏感信息泄露。 总的来说,ZXing是一个强大且灵活的二维码扫描库,通过合理地集成和定制,...

    android(zxing)全屏二维码识别,全屏扫描二维码,近距离扫描二维码,图片识别二维码

    当用户靠近二维码时,可以通过调整焦距或增大扫描区域来优化扫描效果。这通常需要监听设备的距离传感器或手动调整摄像头焦距。 7. **图片识别二维码** 对于已有的二维码图片,你可以使用ZXing的`BitmapSource`类...

    android ZXing4.3.1扫描器源码

    4. **自定义界面**:开发者可以根据自己的需求自定义扫描界面,调整扫描框大小、颜色,以及添加其他UI元素,提高用户体验。 5. **易于集成**:ZXing提供了简单易用的API,开发者可以快速将其集成到自己的应用程序中...

    Android Zxing竖屏扫描二维码

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

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

    6. **修改扫描动画**:原有的ZXing扫描动画可能为简单的矩形框移动,开发者将其替换为横线掉落动画,这样的设计可能更符合用户视觉感受,同时也能起到引导用户关注扫描区域的作用。 总的来说,这个项目是对ZXing...

    Android zxing包.jar.zip

    2. 创建扫描界面:根据Zxing提供的`CaptureActivity`,开发者可以自定义扫描界面,设置扫描区域、启动扫描以及处理扫描结果。 3. 调用扫描API:在自定义的扫描界面中,调用`CaptureActivity`的`startCapture()`方法...

    Android Zxing二维码扫描

    **Android Zxing二维码扫描** 在Android开发中,二维码扫描是一个常见的功能,用于读取和创建二维码,方便数据...通过理解Zxing的工作原理和优化技巧,开发者可以为自己的Android应用构建高效且稳定的二维码扫描功能。

    Zxing扫描工具类

    Zxing允许开发者自定义扫描界面和交互,比如设置扫描框大小、颜色,添加扫描动画,调整扫描速度等。此外,还可以添加权限请求、闪光灯控制等功能,以优化用户的使用体验。 **5. 性能优化与错误处理** 在实际应用中...

    Android lib zxing 3.3.2

    ZXing库会抛出`ReaderException`表示无法解析条码,这时可以提示用户调整扫描角度或者改善光线条件。 **6. 性能优化** 为了提升扫描速度和用户体验,可以考虑以下几点优化策略: - 在不需实时扫描时,关闭相机以...

    Android ZXing2.3.0二维码扫描

    在Android应用中,你可以创建一个`BarcodeScanner`实例,设置扫描参数,如扫描区域和编码类型,然后启动相机进行扫描。扫描结果会通过回调函数传递给应用,可以处理这些结果,例如打开链接或显示商品信息。 **4. ...

    mono for android ZXing 扫描

    ZXing库提供了一系列API,可以设置扫描参数,如条形码类型、扫描区域等。一旦扫描成功,ZXing会返回识别到的数据,开发者可以据此执行相应的操作,例如跳转网页、存储数据或者显示相关信息。 在 Mono for Android ...

    android二维码zxing源代码

    5. **自定义配置**: 通过源代码,开发者可以对ZXing的扫描参数进行优化,比如调整扫描区域、设置光源处理策略等,以适应不同的设备和场景。 6. **权限管理**: 在Android系统中,使用摄像头和访问存储都需要获取相应...

    VS2017 xamarin android 使用zxing扫描二维码

    ZXing提供了一些配置选项,可以根据需求调整扫描行为,比如设置可解码的条码类型、扫描区域等。例如: ```csharp var options = new MobileBarcodeScanningOptions { AutoRotate = true, TryHarder = true, ...

    android利用Zxing编码与解码

    你可以通过设置`CameraSourcePreview`和`SurfaceView`来自定义预览布局,并调整扫描区域和扫描动画。 **6. 权限申请** 在Android 6.0及以上版本,需要在运行时请求`CAMERA`权限,确保应用能够访问摄像头: ```java...

    android zxing简洁的条码/二维码扫描功能的实现

    - 提供错误处理:当扫描失败时,ZXing会通过`DecodeError`回调通知,可以提示用户调整扫描角度或光线。 - 自定义扫描框:ZXing允许你设置扫描框的样式,使其更符合应用设计。 - 控制闪光灯:如果设备支持,可以...

    android zxing二维码demo

    8. **性能优化**:为了提高扫描速度和准确性,可以调整ZXing的扫描参数,如解码格式、扫描区域、照明条件等。 这个示例项目为初学者提供了一个了解和实践ZXing库的好起点,同时也为有经验的开发者提供了一个快速...

    zxing仿微信扫描(安卓)

    - 实现扫描区域的自适应调整,以适应不同尺寸的设备。 **7. 代码优化与错误处理** 由于描述中提到“还有许多待改善的地方”,这意味着可能存在性能优化、内存管理、错误处理等方面的问题。例如,确保在不使用相机...

Global site tag (gtag.js) - Google Analytics