我正在尝试将二维码扫描器集成到我的google纸板程序中。我已经使用答案here启动了一个纸板相机。当我尝试将用于条形码阅读器的vision API集成到其中时,我遇到了问题。我需要开始将一个纹理传递给vision API的camerasource部分。
final CameraSource cameraSource = new CameraSource
.Builder(this, barcodeDetector)
.setRequestedPreviewSize(640, 480)
.build();
如何将二维码扫描仪与vision API集成到我的纸板应用程序中?
发布于 2017-12-02 01:01:42
谷歌提供了一个非常有用的视图来管理你的CameraSource
预览和检测。您不必担心管理纹理本身或在视图中确定纹理/表面的布局。
它被称为CameraSourcePreview
,它与SurfaceView
一起用于管理CameraSource
的操作。
您可以像在布局中使用任何其他视图一样使用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>
在你的活动中,你像平常一样设置你的BarcodeDetector
和CameraSource
(可能是在你的onCreate()
方法中),然后(可能是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;
}
}
实际上,你只需要通过你的CameraSourcePreview
来管理你的CameraSource
,但是它会处理大量的布局/预览等繁重的工作,所以你不需要这样做。查看BarcodeCaptureActivity
,了解有关activity如何管理这些组件的更多信息。
查看android vision sample projects中的barcode-reader示例,以获得完整的项目示例。
希望这能帮上忙,干杯。
https://stackoverflow.com/questions/35717894
复制相似问题