如何将条形码的Vision API与谷歌纸板集成?

时间:2016-03-01 08:26:28

标签: java android barcode barcode-scanner google-cardboard

我正在尝试将qr代码扫描程序集成到我的google纸板程序中。我用答案here开始纸板相机。当我尝试将条形码阅读器的视觉API集成到此时,我遇到了问题。我需要启动相机将纹理传递给vision API的camerasource部分。

final CameraSource cameraSource = new CameraSource
            .Builder(this, barcodeDetector)
            .setRequestedPreviewSize(640, 480)
            .build();

如何将qr代码扫描程序与vision API集成到我的纸板应用程序中?

1 个答案:

答案 0 :(得分:0)

Google提供了一个非常有用的视图,用于管理CameraSource进行预览和检测。您不必担心管理纹理本身或确定视图中纹理/曲面的布局。

它被称为CameraSourcePreview,它用于管理CameraSourceSurfaceView的操作。

您可以像布局中的任何其他视图一样使用CameraSourcePreview,例如在此全屏LinearLayout中:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/topLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">

  <com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSourcePreview
      android:id="@+id/preview"
      android:layout_width="match_parent"
      android:layout_height="match_parent">   
  </com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSourcePreview>

</LinearLayout>

在您的活动中,您将BarcodeDetectorCameraSource设置为正常(可能在您的onCreate()方法中),然后(可能{ {1}} )启动您的onResume()。它看起来像这样:

CameraSourcePreview

实际上,您只是通过if (mCameraSource != null) { try { mPreview.start(mCameraSource, mGraphicOverlay); } catch (IOException e) { Log.e(TAG, "Unable to start camera source.", e); mCameraSource.release(); mCameraSource = null; } } 管理CameraSource,但它处理了布局/预览等的大量繁重工作。所以你不必这样做。查看BarcodeCaptureActivity以了解有关活动如何管理这些组件的更多信息。

查看barcode-reader中的android vision sample projects示例,了解完整的项目示例。

希望有所帮助,欢呼。