Очень удобный и практичный инструмент для сканирования, анализа и генерации QR-кодов.
Публичный аккаунт | Juejin | Zhihu | CSDN | Jianshu | Segmentfault | Bilibili | Toutiao |
---|---|---|---|---|---|---|---|
Моё путешествие в мир открытого исходного кода Android | Ссылка | Ссылка | Ссылка | Ссылка | Ссылка | Ссылка | Ссылка |
В настоящее время поддерживается использование основного инструмента разработки Android Studio. Просто настройте build.gradle и добавьте зависимость.
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
build.gradle
приложения:dependencies {
...
// Если это проект androidx, используйте версию 1.1.0 или выше
implementation 'com.github.xuexiangjys:XQRCode:1.1.0'
// Для проектов support используйте версию 1.0.6
implementation 'com.github.xuexiangjys:XQRCode:1.0.6'
}
XQRCode.startScan
, чтобы вызвать сканирование по умолчанию.XQRCode.startScan(this, REQUEST_CODE);
XQRCode.RESULT_TYPE
: тип результата сканирования, XQRCode.RESULT_SUCCESS
означает успешное сканирование, а XQRCode.RESULT_FAILED
— неудачное.XQRCode.RESULT_DATA
: данные отсканированного QR-кода.<!-- Пользовательская тема интерфейса сканирования по умолчанию -->
<style name="XQRCodeTheme.Custom">
<item name="ViewfinderViewStyle">@style/ViewfinderView.Custom</item>
</style>
<style name="ViewfinderView.Custom">
<item name="inner_corner_color">#123456</item>
<item name="inner_corner_length">50dp</item>
<item name="inner_corner_width">5dp</item>
<item name="inner_scan_speed">20dp</item>
<item name="inner_scan_isCircle">false</item>
</style>
Для получения более подробной информации см. CustomCaptureActivity.
@Override
protected void beforeCapture() {
// Выполнить необходимые действия перед сканированием
}
@Override
protected void onCameraInitSuccess() {
// Камера успешно инициализирована
}
@Override
protected void onCameraInitFailed() {
// Ошибка инициализации камеры
}
Пример кода для сканирования QR-кода:
/**
* Запуск сканирования QR-кода
*/
@Permission(CAMERA)
private void startScan(ScanType scanType) {
switch (scanType) {
case DEFAULT:
XQRCode.startScan(this, REQUEST_CODE);
break;
case DEFAULT_Custom:
XQRCode.startScan(this, REQUEST_CODE, R.style.XQRCodeTheme_Custom);
break;
case REMOTE:
Intent intent = new Intent(XQRCode.ACTION_DEFAULT_CAPTURE);
startActivityForResult(intent, REQUEST_CODE);
break;
default:
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Обработка результатов сканирования
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// Отображение результатов сканирования на экране
handleScanResult(data);
}
// Выбор системного изображения и его анализ
else if (requestCode == REQUEST_IMAGE) {
if (data != null) {
Uri uri = data.getData();
getAnalyzeQRCodeResult(uri);
}
}
}
/**
*
``` Ваша поддержка — моя мотивация. Список всех поддержавших будет приведён ниже в качестве подтверждения, перед тем как поддержать проект, пожалуйста, оставьте комментарий с описанием поддержки!
## Публичный аккаунт
> Больше информации. Добро пожаловать в мой личный публичный аккаунт WeChat: «Мой путь в мир открытых исходных кодов Android».
[apisvg]: https://img.shields.io/badge/API-14+-brightgreen.svg
[api]: https://android-arsenal.com/api?level=14
*Примечание: часть текста не удалось перевести из-за отсутствия контекста.*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )