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

Zxing 是google提供的二维码扫描工程

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

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

希望对您有用

资源下载地址:

版权声明:本文为博主原创文章,,未经博主允许不得转载。

想要成功,就一定要和成功的人在一起,不然反之

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

相关文章:

你感兴趣的文章:

标签云: