二维码扫描界面的参数配置,找到包mining,app.zxing内camera包
1.修改扫描界面相框相关
打开CameraManager,设置扫描相框最大值
private static final int MIN_FRAME_WIDTH = 480;//240 设置相框宽度最小值
private static final int MIN_FRAME_HEIGHT = 480;//240 设置相框高度最小值
private static final int MAX_FRAME_WIDTH = 800;//480 设置相框宽度最大值
private static final int MAX_FRAME_HEIGHT = 800;//480 设置相框宽度最大值
设置相框占屏幕宽度比
int width = screenResolution.x * 4 / 5;//设置相框占屏幕宽度比
int height = screenResolution.y * 2 / 4;//设置相框占屏幕高度比
int leftOffset = (screenResolution.x - width) / 2;//设置相框距离屏幕左边的距离
int topOffset = (screenResolution.y - height) / 3;//设置相框距离屏幕高度的距离
2.修改扫描界面显示文字
canvas.drawText(getResources().getString(R.string.scan_text), (float)(frame.left+(float)TEXT_PADDING_LEF T *density), (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);
此方法第一个参数是设置扫描界面文字内容,第二个参数是设置文字距离左边距离,第三个参数是设置文字距离顶部的 距离,第四个参数为画笔.
找到CameraConfigurationManager类,找到方法initFromCameraParameters
将下面代码复制替换原来代码
void initFromCameraParameters(Camera camera) { 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); Log.d(TAG, "Camera 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);