как установить рамку для сканера штрих-кода?

У меня есть приложение сканера штрих-кода, которое использует (обнаружение штрих-кода с API Google Mobile Vision) в работе камеры. Я хочу установить рамку, чтобы приложение просто считывало штрих-коды или QR-коды, которые находятся в этой рамке (как и все приложения сканера), как я могу настроить его?

вот макет камеры xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ScanBarcodeActivity">

    <SurfaceView
        android:id="@+id/cammeraPreview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

person A.R.B.N    schedule 16.05.2018    source источник
comment
API мобильного зрения Google? Ты это пробовал?   -  person Na-In Hae    schedule 17.05.2018
comment
да гугл API   -  person A.R.B.N    schedule 17.05.2018


Ответы (1)


То, что это сканер штрих-кода, а не обычный предварительный просмотр камеры, мало что меняет. Вы можете следовать этому ответу, чтобы добавить прямоугольник "над" поверхностью предварительного просмотра. Обратите внимание, что это означает, что макет верхнего уровня вашей деятельности — FrameLayout.

Вы можете попробовать проверить координаты распознанного штрих-кода и проигнорировать его, если они не совпадают с нарисованным вами прямоугольником, но, по моему мнению, это будет пустой тратой времени — как для вас, так и для конечного пользователя. Надежности распознавания это не добавит.

С другой стороны, визуальное руководство (ваш пользовательский фрейм) действительно улучшает UX сканера штрих-кода, даже если за ним нет программной логики.

person Alex Cohn    schedule 16.05.2018