Escáner de código QR usando la biblioteca ZXing en el sistema Android – Golap Gunjan Barman

En este blog discutiremos cómo escanear Código QR utilizando ZXing biblioteca en Android. Antes de implementar el código real, entendamos qué es la biblioteca ZXing.

ZXing («paso de peatones») es una biblioteca de códigos de barras 1D / 2D multiformato de código abierto para el procesamiento de imágenes implementada en Java con puertos a otros lenguajes. ZXing también está alojado en el proyecto de código abierto de Google.

La última versión hasta la fecha es 3.3.3.

Dependencia

adiccion {
implementación ‘com.google.zxing: core: ‘
implementación (‘com.journeyapps: zxing-android-embedded: 3.6.0’) { transitivo = Falso}
}

Código

activity_main.xml

<?xml versión = «1.0» codificación = «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»
herramientas: contexto = ”. Actividad principal «
android: orientación = «vertical»
android: layout_gravity = «centro»
android: background = ”# fff”
>

<Disposición lineal
android: orientación = «vertical»
android: layout_width = «match_parent»
android: layout_height = «250 ppp»
android: background = «@ drawable / geadient_background»
>

<Vista de texto
android: layout_width = «match_parent»
android: layout_height = «wrap_content»
android: fontFamily = ”@ font / asap_bold”
Android: text = ”@ string / qr_code”
android: textColor = ”# ffffff”
android: textSize = «32sp»
android: layout_marginTop = «80dp»
android: layout_marginStart = ”16dp”
android: textStyle = «negrita»
/>

<Vista de texto
android: layout_width = «match_parent»
android: layout_height = «wrap_content»
android: layout_marginStart = ”16dp”
android: fontFamily = ”@ font / lo antes posible”
android: text = ”@ string / scanner”
android: textColor = ”# FFFFFF”
android: textSize = «24sp»
/>

</Disposición lineal>

<Mando
android: layout_width = «250dp»
android: layout_height = «wrap_content»
android: id = ”@ + id / scan”
android: padding = «4dp»
android: layout_marginTop = «20sp»
android: layout_gravity = «centro»
android: text = «Escanear»
android: fontFamily = ”@ font / asap_bold”
android: textSize = «19sp»
android: textStyle = «negrita»
android: textColor = ”# ffffff”
android: background = «@ drawable / button_background»
/>

</Disposición lineal>

MainActivity.java

clase pública Actividad principal se expande AppCompatActivity {
privado Mando escanear;

escanear.setOnClickListener (Nuevo View.OnClickListener () {@Override vacío público onClick (Ver en) {IntentIntegrator intentIntegrator = Nuevo IntentIntegrator (MainActivity.esta); intentIntegrator.setDesiredBarcodeFormats (IntentIntegrator.CÓDIGO QR); intentIntegrator.setCameraId (0); intentIntegrator.setOrientationLocked (Falso); intentIntegrator.setPrompt («exploración»); intentIntegrator.setBeepEnabled (real); intentIntegrator.setBarcodeImageEnabled (real); intentIntegrator.initiateScan ();
}
});
}
@Transcripción
vacío protegido onActivityResult (En t solicitar un código En t resultCode, @Nullable Intent data) {IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, datos); Si (resultado! = cero && result.getContents ()! = cero) {
Nuevo AlertDialog.Builder (MainActivity.esta) .setTitle («Resultado de la exploracion») .setMessage (result.getContents ()) .setPositiveButton («Copiar», Nuevo DialogInterface.OnClickListener () {
@Transcripción
vacío público onClick (diálogo DialogInterface, En t que) {ClipboardManager manager = (ClipboardManager) getSystemService (CLIPBOARD_SERVICE); Datos de ClipData = ClipData.newPlainText(«resultado», result.getContents ()); manager.setPrimaryClip (datos); }
}). setNegativeButton (
«Anulación», Nuevo DialogInterface.OnClickListener () {
@Transcripción
vacío público onClick (diálogo DialogInterface, En t cuál) {dialog.dismiss (); }}). crear (). espectáculo ();
}
súper.onActivityResult (requestCode, resultCode, datos);
}
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *