Zxing框架进行二维码扫描时候会发现,随着分辨率的增加,扫描框会越来越小,SurfaceView扫描窗口就看不见了,我们可以自己定义扫描窗口的大小,以及适配屏幕问题。

Zxing包中有个类CameraManager,它是来设置扫描框的大小

扫描框框初始化数值

  private static  int MIN_FRAME_WIDTH = 240;
private static int MIN_FRAME_HEIGHT = 240;
private static int MAX_FRAME_WIDTH = 480;
private static int MAX_FRAME_HEIGHT = 360;

此类里面有个getFramingRect方法用来设置扫描的框的大小,如果要修改扫描框的大小可以在这个方法里修改

  public Rect getFramingRect() {
Point screenResolution = configManager.getScreenResolution();
if (framingRect == null) {
if (camera == null) {
return null;
}       MIN_FRAME_WIDTH = Dp2Px(context,180);
      MIN_FRAME_HEIGHT =Dp2Px(context,180);
      MAX_FRAME_WIDTH = Dp2Px(context,280);
      MAX_FRAME_HEIGHT =Dp2Px(context,240); 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;
}

要让扫描框适应不同的分辨率,我们需要根据分辨率将扫描框的初始值转化就好。

MIN_FRAME_WIDTH = Dp2Px(context,180);
      MIN_FRAME_HEIGHT =Dp2Px(context,180) ;
      MAX_FRAME_WIDTH = Dp2Px(context,280);
      MAX_FRAME_HEIGHT =Dp2Px(context,240) ;

dp转为px的方法为

  public static  int Dp2Px( Context context,float dp) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}

【Android-Zxing框架】二维码扫描框区域大小与不同手机分辨率适配问题的更多相关文章

  1. android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Hol ...

  2. Android快速实现二维码扫描--Zbar

    Android中二维码扫描的最常用库是zxing和zbar,上一篇<Android快速实现二维码扫描–Zxing>介绍了Zxing.这次说Zbar,Zbar速度极快,我就比较常用,项目地址 ...

  3. Android快速实现二维码扫描--Zxing

    Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...

  4. Android仿微信二维码扫描

    转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...

  5. Google zxing实现二维码扫描完美解决方案

    最近因项目需求,需要在App中集成二维码扫描的功能.网上找了很多资料,最后决定使用Google的zxing来实现.实现的过程遇到了很多的坑,也是因为这些坑在网上没有具体的解决方案,今天就把我的实现过程 ...

  6. Android - Zxing实现二维码的扫描与生成

    Zxing: Zxing是一个开放源码,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口.可以实现使用手机内置摄像头完成条形码的扫描以及解码. github:     ...

  7. android中Zing二维码扫描,二维码生成

    Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...

  8. Android zxing 解析二维码,生成二维码极简demo

    zxing 官方的代码很多,看起来很费劲,此demo只抽取了有用的部分,实现了相机预览解码,解析本地二维码,生成二维码三个功能. 简化后的结构如下: 废话少说直接上代码: BaseDecodeHand ...

  9. Android zxing实现二维码生成和解析

    二维码的生成与解析.有多种途径.我选择用大品牌,google老大的zxing. gitHub链接是(我用的3.0.0,已经是nio了) https://github.com/zxing/zxing/t ...

随机推荐

  1. [转帖]Linux环境变量设置方法总结 PATH、LD_LIBRARY_PATH

    Linux环境变量设置方法总结 PATH.LD_LIBRARY_PATH 2018年01月17日 21:10:26 晨至曦 阅读数 7548 https://blog.csdn.net/qq_1900 ...

  2. MYSQL SHOW 用法

    1.SHOW CHARACTER SET 显示所有可用的字符集 mysql> SHOW CHARACTER SET LIKE 'utf8'; +---------+--------------- ...

  3. Java模版引擎之Freemarker

    Java模版引擎之Freemarker freemarker是一款模版引擎,是一种基于模版生成静态文件的通用工具,它是为Java程序员提供的一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌 ...

  4. (三)IDEA创建Spring项目

    新建项目的时候,选择Spring : 在Spring的下面,有许多选项,根据自己需求选择,我是初学,就一个都没有勾选: 选择 Web Application 选项 默认是下载Spring的jar包:如 ...

  5. (二十四)JDBC应用的事务管理(转账事例)

    目录 利用 Dbutils 进行事务操作(以转账为例) 转账实现方式(不优雅的方式) ThreadLocal 类 转账实现方式(优雅的方式) 利用 Dbutils 进行事务操作(以转账为例) 我们只在 ...

  6. HeidiSQL 导入Excel数据

    一 前言 原文出处:http://blog.csdn.net/qq_27727681/article/details/53944744 二 效果演示: 2000多条数据,顺利导入成功. 三  实现方法 ...

  7. BFS以及hash表判重的应用~

    主要还是讲下hash判重的问题吧 这道题目用的是除法求余散列方式 前几天看了下算法导论 由于我们用的是线性再寻址的方式来解决冲突问题 所以hash表的大小(余数的范围)要包含我们要求的范围 对mod的 ...

  8. Python实现英文文章加密传送,收到后进行解密

    思路:将I Love You这样的字符串中的每一个字符,将他的Unicode码都就进行加或减去一个特定的数, 在传送过程中,如果被截获,获取的也是一段混乱的文章,当收到这段文章后,按相同的方式对Uni ...

  9. FLEX AIR 读写安卓本地文件

    1.  目标: 将字节流图片保存在安卓本地路径,如 "/data/mypppd/"下, file = File.documentsDirectory.resolvePath(&qu ...

  10. sipp命令 各参数含义

    sipp -sn uac 172.31.89.4:5060 -r 1 -rp 3000 -inf data.csv -p 7098 -i 172.31.89.242 -s 8001 -sf uac_o ...