1,設(shè)置生成二維碼的容錯率
原來二維碼在生成時并沒有設(shè)置容錯率士修,事實上我們可以簡單的設(shè)置一下容錯率枷遂,只需要在EncodingHandler類中hints.put(EncodeHintType.CHARACTER_SET, "utf-8");代碼后 添加一行
hints.put(EncodeHintType.ERROR_CORRECTION, String.valueOf(ErrorCorrectionLevel.H));即可。
2棋嘲,調(diào)整掃描框樣式
掃描框的重繪方法在ViewfinderView類中的onDraw()方法中酒唉,可以在該方法中修改掃描框的顯示形式。
3沸移,調(diào)整掃描區(qū)域大小
掃描框大小由掃描區(qū)域大小限制痪伦,getFramingRect()用來獲取掃描框的大小,getFramingRectInPreview()用來調(diào)整掃描區(qū)域的大小雹锣,兩個方法均在CameraManager類中网沾,getFramingRectInPreview()方法通過調(diào)用getFramingRect()來確定掃描區(qū)域的大小。
4蕊爵,聚焦時間
該開源庫設(shè)置了自動對焦辉哥,對焦時長默認1500毫秒,可以在AutoFocusCallback類中修改AUTOFOCUS_INTERVAL_MS參數(shù)攒射。
5醋旦,聚焦距離
聚焦距離參數(shù)可在CameraConfigurationManager類中修改TEN_DESIRED_ZOOM參數(shù)。
6会放,修改切換成豎屏后圖像拉伸的問題
在CameraConfigurationManager類中找到initFromCameraParameters()方法饲齐,并將一下代碼重寫
Camera.Parameters parameters = camera.getParameters();
previewFormat = parameters.getPreviewFormat();
previewFormatString = parameters.get("preview-format");
Log.d(TAG, "Default preview format: " + previewFormat + '/' + previewFormatString);
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
screenResolution = new Point(display.getWidth(), display.getHeight());
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;
}
cameraResolution = getCameraResolution(parameters, screenResolutionForCamera);
// ? ?cameraResolution = getCameraResolution(parameters, screenResolution);
Log.d(TAG, "Camera resolution: " + screenResolution);