【Android Zxing框架扫描解决扫描框大小,图片压缩问题】从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述Android Zxing框架扫描解决扫描框大小,图片压缩问题相关的知识,希望能为你提供帮助。
在我们是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 plaincopy
文章图片
文章图片
- cameraResolution = getCameraResolution(parameters, screenResolution);
中的screenResolution改为 screenResolutionForCamera
例如以下:
[java] view plaincopy
文章图片
文章图片
- cameraResolution = getCameraResolution(parameters, screenResoluti
保存。执行完美解决,在此附上二维码扫描和二维码生成demo 不须要积分,咱们互相学习。共同跟进步,有问题能够在评论区提出。
推荐阅读
- Android第一行代码学习笔记五---隐式Itent启动其它程序的活动
- Android中pendingIntent的深入理解
- 利用Spring的ApplicationEvent执行自定义方法
- Android IntentService全然解析 当Service遇到Handler
- android环境下两种md5加密方式
- app_data中的数据库使用
- Android API Guides –System Permissions
- 安卓适配基础知识
- Android Studio 2.3.3 安装