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

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调整扫描区域 优化取图速度,布布扣,bubuko.com

时间: 2024-10-11 21:40:21

Android Zxing调整扫描区域 优化取图速度的相关文章

Android Zxing框架扫描解决扫描框大小,图片压缩问题

在我们是Zxing框架进行二维码扫描的时候,会发现,现在手机随着分辨率的增加,那个扫描框会越来越小,在1920*1280和1280*720还算比较正常,但是三星的几款手机note4,5,S6,等几款手机分辨率高达2560*1440,甚至一些手机高达3660的吧记不清了. 在这些手机扫描的时候,弹出的扫描Activity中间SurfaceView扫描窗口小的也是醉了, 不说了解决办法: 1:找到启动扫描的Intent    即: Intent openCameraIntent = new Inte

Android开发:ZXing条码扫描-竖屏解决方案

写在前面的话 感谢ZXing团队,项目下载地址:https://github.com/zxing/zxing,项目下载后,Android条码扫描主要用到三个模块:android,android-core,core.zxing项目解压后目录结构如图所示: android是ZXing提供的条码扫描器apk客户端源码,android-core和core是需要的类库.本文提供的zxing竖屏扫描解决方案采用的android版本号versionName为4.7.4,versionCode为104,zxin

Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

首先我们先看第一个界面吧,使用将手机中的图片扫描出来,然后根据图片的所在的文件夹将其分类出来,并显示所在文件夹里面的一张图片和文件夹中图片个数,我们根据界面元素(文件夹名, 文件夹图片个数,文件夹中的一张图片)使用一个实体对象ImageBean来封装这三个属性 package com.example.imagescan; /** * GridView的每个item的数据对象 * * @author len * */ public class ImageBean{ /** * 文件夹的第一张图片路

[Android 成长之路]2-实现带图标的ListView

--by San[[email protected]] 在编写列表时,如果是普通的列表,使用ListView + ArrayAdapter 即可实现,但是如果要在每个列表项中文字前配一个图标了,或者在文字后面再配一个图标,这个就可以用 SimpleAdapter 实现了,不要被它的名字欺骗了,It is not simple, it is powerful. 我们以制作一个带图标的菜单列表为例,首先我们创建一个布局文件 menu_frame.xml,里面包含一个 ListView, 代码如下:

[Unity+Android]横版扫描二维码

终于解决了一个忧伤好久的问题,严重拖了项目进度,深感惭愧!一直被一系列的问题所困扰,然后又只能自己一个人摸索,也是一段辛酸忧伤史,现在小结一下上个月在做二维码的过程中所碰到的问题以及解决办法,现在庆幸终于解决好了,终于能将这个功能告一段落,一下小结也是分享一下Unity的某些"坑",让同行少走弯路,起码在二维码这方面应该会有所启迪,欣慰的是接下来几天终于可以做自己应该做的事情了! 效果图: 先小结一下碰到的问题: 1.Unity工程屏幕方向与Android工程屏幕方向要一致的问题 本来

Notification的改进与cancel方法 --看Android系统的系统安全优化

由于Android市场管理的不健全,很多APP都通过向通知栏投广告的方式诱导用户点击,广告多了,很是烦心. 因此好多安全软件提供了去通知栏广告的功能,甚至Android在4.2以后提供了disable某个app的notification功能,来净化通知栏.可见通知栏的控制对于用户来说至关重要. 安卓安全小分队在研究这一功能时,希望提出一些建设性的意见供大家参考. 一.组织结构 1. NotificationManagerService NotificationManagerService 是通知

BZOJ 3218 A+B Problem(最大流 + 主席树优化建图)

题目:A+B Problem 感谢 Nietzsche 在省选紧迫之际花 39' 给我讲这道题. 这题我并没有想出来,感觉又浪费一道好题了. 需要用最小割,建模方式如下(假设若 2 取黑色,1 取白色会使 2 为奇怪方格): 跑一边最大流,求出最小割,用所有的 W + 所有的 B - 最小割,就是答案. 不过,对于每一个结点 2,在寻找像 1 这样(li <= aj <= ri)的结点时,总不能一个一个枚举吧? O(n2) T 飞. 所以,需要用主席树优化一下.线段树优化建图笔记. 代码未完待

机房测试5:reverse(bfs+set 或 线段树优化建图)

题目: 分析: 首先画样例分析一下,会发现如果要求一个位置要多少次翻转,就将这个位置向与它关联的点连边(关联点指的是可能与它值互换的位置),一直连到起点为止,连边的次数即为它所需步数. 所以转换成求单源最短路,因为边权为1,可以用bfs. 但是这道题n的范围很大,刚刚的做法是n*k的,考虑优化. 法1:在建图上优化 题目要求的是区间翻转,所以也对应着相关性质:每个点连边一定是都连的奇数点或偶数点(画图可知),且这些奇数偶数点都对应着一段连续的区间. 如果可以将点向点连边优化成点向区间连边,复杂度

使用Android的硬件缩放技术优化执行效率

Unity3D研究院之使用Android的硬件缩放技术优化执行效率 http://www.xuanyusong.com/archives/3205 Android中GLSurfaceView在横竖屏切换时重新创建表面缓冲导致的问题 http://blog.k-res.net/archives/1702.html https://stackoverflow.com/questions/7185644/android-opengl-crazy-aspect-ratio-after-sleep