android zxing二维码扫描界面参数修改

来源:互联网 发布:淘宝网页设计招聘 编辑:程序博客网 时间:2024/05/26 09:54

  二维码扫描界面的参数配置,找到包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);










0 0
原创粉丝点击