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

2023-06-05,,

Zxing 是google提供的二维码扫描project

Demo本身默认的扫图区域最大仅仅有 360*480    须要拉开非常远的距离才干将整个二维码扫描到

因此须要我们自己调整取图大小

在CameraManager.java这个类中进行调整

默认的大小是 下面这4个參数

//  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中提供的

 /**
* 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;
}

我为了适配不同的屏幕大小将代码改成了

  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 这个类其中进行绘制

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

希望对您实用

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

Android Zxing调整扫描区域 优化取图速度的相关教程结束。

《Android Zxing调整扫描区域 优化取图速度.doc》

下载本文的Word格式文档,以方便收藏与打印。