二维码扫描界面的参数配置,找到包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);
版权声明:本文为jiuhaofangyinyue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。