在我们是Zxing框架进行二维码扫描的时候,会发现,如今手机随着分辨率的添加。那个扫描框会越来越小,在1920*1280和1280*720还算比較正常。可是三星的几款手机note4,5。S6,等几款手机分辨率高达2560*1440,甚至一些手机高达3660的吧记不清了。

在这些手机扫描的时候,弹出的扫描Activity中间SurfaceView扫描窗体小的也是醉了,

不说了解决的方法:

1:找到启动扫描的Intent    即:

Intent openCameraIntent = new Intent(context,CaptureActivity.class);

startActivityForResult(openCameraIntent,0);

2:跟进CaptureActivity类。在类中搜索:CameraManager。跟进进去CameraManager类中:最上面四行參数就是设置宽高的,

 private static final int MIN_FRAME_WIDTH = (int) DP_SP_PX_Utils.dp2px(MyApplication.instance.getResources(),180);
private static final int MIN_FRAME_HEIGHT = (int) DP_SP_PX_Utils.dp2px(MyApplication.instance.getResources(),180);
private static final int MAX_FRAME_WIDTH = (int) DP_SP_PX_Utils.dp2px(MyApplication.instance.getResources(),240);
private static final int MAX_FRAME_HEIGHT = (int) DP_SP_PX_Utils.dp2px(MyApplication.instance.getResources(),240);

当中后边我进行了dp转换,这样每一个分辨率的屏幕扫描窗体大小都是固定的。完美解决这个问题。

第二个问题:每次扫描后图片都会压缩下

解决方法:在Zxing包下的camera包下找到CameraConfigurationManager.java类,改动:

搜索initFromCameraParameters 这种方法,在该方法下找到  Log.d(TAG,
"Screen resolution: " + screenResolution);  这句话,在这句话以下加入这些代码:

Point screenResolutionForCamera = new Point();
screenResolutionForCamera.x = screenResolution.x;
screenResolutionForCamera.y = screenResolution.y;
// preview size is always something like 480*320, other 320*480
if (screenResolution.x < screenResolution.y) {
screenResolutionForCamera.x = screenResolution.y;
screenResolutionForCamera.y = screenResolution.x;
}

然后以下有一行这种代码:

[java] view
plain
copy

  1. cameraResolution = getCameraResolution(parameters, screenResolution);

中的screenResolution改为  screenResolutionForCamera

例如以下:

[java] view
plain
copy

  1. cameraResolution = getCameraResolution(parameters, screenResoluti

保存。执行完美解决,在此附上二维码扫描和二维码生成demo 
不须要积分,咱们互相学习。共同跟进步,有问题能够在评论区提出。

Android Zxing框架扫描解决扫描框大小,图片压缩问题的更多相关文章

  1. Android开发中如何解决加载大图片时内存溢出的问题

    Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给 ...

  2. Android—ZXing二维码扫描遇到的问题

    最近工作中需要开发带有二维码扫描功能的软件(基于开源项目ZXing),遇到的问题记录一下,也希望给大家带来帮助. 1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行 <uses ...

  3. Android Zxing 转换竖屏扫描且提高识别率

    最近的一个Android需要用到扫码功能,用的是Zxing开源库.Zxing的集成就不说了,但是Zxing默认的是横屏扫码,在实际生产中并不适用,需要改为竖屏扫描. 转竖屏步骤: 1>. And ...

  4. Android Volley框架的使用(四)图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)

    在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量.对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理 ...

  5. Android使用BitmapFactory.Options解决加载大图片内存溢出问题

    由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfM ...

  6. Android 在已有工程中实现微信图片压缩

    这个我们需要自己去编译,但是已经有人帮我们编译好了,压缩算法也已经实现,因此,我们去下载然后编译即可:https://github.com/bither/bither-android-lib 首先将上 ...

  7. Zxing二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动)

    本帖最后由 levil_ad 于 2013-12-30 13:55 编辑 最近没事做了下二维码扫描,用的是ZXing的开源代码,官方源码地址:http://code.google.com/p/zxin ...

  8. Android ZXing 二维码、条形码扫描介绍

    本帖最后由 Shims 于 2013-11-9 12:39 编辑 最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个开源的 ZXing项目.它提供二维码和条形码 ...

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

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

随机推荐

  1. EditPlus里面自带有更改文件编码的功能

  2. NX自动出图

    小秀一下战果: 1. 自动添加图框2. 自动添加投影视图3. 自动标注外形尺寸4. 根据工艺要求,自动添加公差5. 自动孔表6. 批量打印 欢迎大家积极吐槽哈 [视频演示] http://v.youk ...

  3. codeforces_456C_dp

    链接:http://codeforces.com/problemset/problem/456/C C. Boredom time limit per test 1 second memory lim ...

  4. Android Measure 体系简单总结

    Android对View的测量是半协商半强制半模糊半具体的. 测量过程中的两套尺寸体系:  [半强制] ParentView**约束ChildView: **MeasureSpec(通过measure ...

  5. 删除链表中重复的结点_java

    package algorithms; /* public class ListNode { int val; ListNode next = null; ListNode(int val) { th ...

  6. JS函数assign

    Object函数提供了一个叫做assign的函数,用来合并多个对象. Object.assign(...): 你可以传递多个对象给该函数,这些对象中的自有且可枚举的属性,会被拷贝给第一个对象. var ...

  7. 02Servlet

    Servlet Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地 ...

  8. python json格式和csv文件转换

    python json格式和csv文件转换 上代码 import csv import json ''' json格式示例 [{ "firstName":"Bill&qu ...

  9. C++ std::map的安全遍历并删除元素的方法

    首先我们讲遍历std::map, 大部分人都能写出第一种遍历的方法,但这种遍历删除的方式并不太安全. 第一种 for循环变量: #include<map> #include<stri ...

  10. angular5中的自定义指令(属性指令)

    属性型指令用于改变一个 DOM 元素的外观或行为. 在 Angular 中有三种类型的指令: 组件 — 拥有模板的指令 结构型指令 — 通过添加和移除 DOM 元素改变 DOM 布局的指令 属性型指令 ...