二维码扫描

二维码

  • 扫描区域的绘制

    • 布局实现

      android:id="@+id/preview_view"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" />

      android:id="@+id/viewfinder_view"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true" />

  • 初始化相机管理器

      cameraManager = new CameraManager(getApplication());
    
      viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);
      viewfinderView.setCameraManager(cameraManager);
    
      handler = null;
      SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
      SurfaceHolder surfaceHolder = surfaceView.getHolder();
      if (hasSurface) {
          // The activity was paused but not stopped, so the surface still
          // exists. Therefore
          // surfaceCreated() won't be called, so init the camera here.
          initCamera(surfaceHolder);
      } else {
          // Install the callback and wait for surfaceCreated() to init the
          // camera.
          surfaceHolder.addCallback(this);
          surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
      }
    
  • 解析扫描结果

      public void handleDecode(Result rawResult, Bitmap barcode) {
      inactivityTimer.onActivity();
      ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(
              this, rawResult);
    
      boolean fromLiveScan = barcode != null;
      if (fromLiveScan) {
          // Then not from history, so beep/vibrate and we have an image to
          // draw on
          beepManager.playBeepSoundAndVibrate();
          // drawResultPoints(barcode, rawResult);
          viewfinderView.drawResultBitmap(barcode);
      }
    
      String text = rawResult.getText();
    
      Toast.makeText(this, "扫描结果:" + text, Toast.LENGTH_LONG).show();
      Log.d(TAG, "result-->" + text);
    

    }

你可能感兴趣的:(二维码扫描)