美文网首页
二维码扫描

二维码扫描

作者: 秋刀鱼_87c6 | 来源:发表于2018-04-17 16:17 被阅读20次

    二维码

    • 扫描区域的绘制

      • 布局实现

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

        <com.google.zxing.client.android.decode.ViewfinderView
        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);
      

      }

    相关文章

      网友评论

          本文标题:二维码扫描

          本文链接:https://www.haomeiwen.com/subject/lahpkftx.html