QRCodeReaderView
Модификация проекта ZXING Barcode Scanner для простого обнаружения QR-кодов и целей дополненной реальности.
Этот проект реализует компонент ohos, который показывает камеру и уведомляет, когда в предварительном просмотре есть QR-код.
Некоторые классы управления камерой и автофокуса взяты и слегка модифицированы из приложения ohos Barcode Scanner.
Вы также можете использовать это для целей дополненной реальности, так как при декодировании вы получаете координаты контрольных точек QR.
Предварительный просмотр:
Использование:
Добавьте «QRCodeReaderView» в редактор макетов, как вы обычно делаете с кнопкой, например. В методе onCreate вы можете найти компонент, используя функцию findComponentById(). Создайте возможность, которая реализует onQRCodeReadListener, и позвольте реализовать необходимые методы или установить onQRCodeReadListener на объект QRCodeReaderView. Убедитесь, что у вас есть разрешения камеры, чтобы использовать библиотеку.
<com.dlazaro66.qrcodereaderview.QRCodeReaderView
ohos:id="$+id:qrcoderView"
ohos:height="match_parent"
ohos:width="match_parent"/>
Запускайте и останавливайте предварительный просмотр камеры в переопределённых методах onStop() и onActive(). Вы можете разместить виджеты или представления поверх QRDecoderView.
public class MainAbility extends Ability implements SurfaceOps.Callback,QRCodeReaderView.OnQRCodeReadListener {
private QRCodeReaderView mQrCodeReaderView;
private PointsOverlayView pointsOverlayView;
private Text resultTextView;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
WindowManager windowManager = WindowManager.getInstance();
Window window = windowManager.getTopWindow().get();
window.setTransparent(true);
mQrCodeReaderView = (QRCodeReaderView)findComponentById(ResourceTable.Id_qrcoderView);
mQrCodeReaderView.getSurfaceOps().get().addCallback(this);
}
// Вызывается при декодировании QR
// «text»: текст, закодированный в QR
// «points»: точки, где расположены контрольные точки QR
@Override
public void onQRCodeRead(String text, Point[] points) {
resultTextView.setText(text);
pointsOverlayView.setVisibility(Component.VISIBLE);
pointsOverlayView.setPoints(points);
mQrCodeReaderView.stopDecode();
}
@Override
protected void onActive() {
super.onActive();
Logger.getLogger(TAG).severe("onActive mQrCodeReaderView =" + mQrCodeReaderView );
if(mQrCodeReaderView != null ){
mQrCodeReaderView.startCamera();
}
}
@Override
protected void onStop() {
super.onStop();
if (mQrCodeReaderView != null) {
mQrCodeReaderView.stopCamera();
}}
}
Интеграция библиотеки в ваше приложение
Решение 1: интеграция локального исходного кода, пользователи могут настраивать его на основе исходного кода
include ':qrcodereaderview' 3. Внедрите зависимость импортированного модуля в проект. Возьмите модуль входа в качестве примера, вам нужно изменить зависимость импортированного модуля в файле build.gradle модуля входа, чтобы добавить зависимости:
dependencies {
entryImplementation project(':entry')
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
debugImplementation project(path: ':qrcodereaderview')
}
Решение 2: Интеграция локального пакета HAR
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Решение 3: Интеграция удалённого репозитория maven
Добавьте следующий код во входную строку gradle:
implementation 'com.gitee.baijuncheng-open-source:QRCodeReaderView:1.0.0'
Примечание: в тексте запроса присутствуют фрагменты кода на языке программирования Ohos. Данный язык не поддерживается переводчиком, поэтому фрагменты кода оставлены без изменений. Соблюдение условий лицензии.
Копию лицензии можно получить по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если иное не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по лицензии, предоставляется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. лицензию для получения информации о конкретных положениях, регулирующих разрешения и ограничения в рамках лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )