在前人的基础上修该的zxing二维码的使用,及在使用过程中遇到的问题的解决方案。
1.修改扫描区域大小在com.google.zxing.camera.CameraManager.java 中 public Rect getFramingRect(){}方法中修改扫描区域大小,使用了屏幕宽度的70%作为扫描区,可自行修改。
2.扫描区域景象被拉伸,拉伸修正。
com.google.zxing.camera.CameraConfigurationManager.java 中 void initFromCameraParameters(Camera camera) {}方法中修改,在方法末尾添加以下代码片段:
//图片拉伸解决
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;
}
cameraResolution = getCameraResolution(parameters, screenResolutionForCamera);
3.扫描使用提示文本位置修改,例如:"将二维码/条形码放入扫描区,自动扫描"
ViewfinderView.java 中 private void drawTextInfo(Canvas canvas, Rect frame) {}中修改文本绘制的位置
4.扫描区域扫描线样式更改。
ViewfinderView.java 中 private void drawLaserScanner(Canvas canvas, Rect frame) {}中修改扫描线的样式。注意若使用paint.setShader(Shader shader) 方法,一定要在绘制完成后调用paint.setShader(null)。以免绘制信息出错。
本文需结合上一篇使用。若有问题欢迎指正!!!