Muchas aplicaciones hoy en día usan códigos QR dentro de su aplicación para ocultar alguna información. Los códigos QR se ven en muchas aplicaciones de pago que los usuarios utilizan para escanear y realizar pagos. Los códigos QR que se ven dentro de estas aplicaciones se generan dentro de la propia aplicación. En este artículo, veremos cómo generar un código QR en Android usando Kotlin.
Nota : si está buscando generar un código QR en Android usando Java. Cómo generar código QR en Android usando Java
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Cómo crear/iniciar un nuevo proyecto en Android Studio
Paso 2: Agregar dependencia a build.gradle (Módulo: aplicación)
Navegue a Gradle Scripts > build.gradle(Module:app) y agregue la siguiente dependencia en la sección de dependencias.
implementation 'androidmads.library.qrgenearator:QRGenearator:1.0.3'
Después de agregar esta dependencia, simplemente sincronice este proyecto para instalarlo.
Paso 3: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <!--on below line we are creating a text for heading of our app--> <TextView android:id="@+id/idTVHeading" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:gravity="center" android:padding="4dp" android:text="QR Code Generator" android:textAlignment="center" android:textColor="@color/purple_200" android:textSize="18sp" android:textStyle="bold" /> <!--We are using this image view to display our QR code--> <ImageView android:id="@+id/idIVQrcode" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:contentDescription="QR Code" /> <!--Edit text to enter text for creating a QR code--> <EditText android:id="@+id/idEdt" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idIVQrcode" android:layout_marginStart="20dp" android:layout_marginTop="30dp" android:layout_marginEnd="20dp" android:autofillHints="" android:hint="Enter your message" android:inputType="text" /> <!--Button for creating a QR code--> <Button android:id="@+id/idBtnGenerateQR" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idEdt" android:layout_marginStart="20dp" android:layout_marginTop="30dp" android:layout_marginEnd="20dp" android:text="Generate QR Code" android:textAllCaps="false" /> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
package com.gtappdevelopers.kotlingfgproject import android.graphics.Bitmap import android.graphics.Point import android.os.Bundle import android.text.TextUtils import android.view.Display import android.view.WindowManager import android.widget.Button import android.widget.EditText import android.widget.ImageView import android.widget.Toast import androidmads.library.qrgenearator.QRGContents import androidmads.library.qrgenearator.QRGEncoder import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { // on below line we are creating a variable // for our image view, edit text and a button. lateinit var qrIV: ImageView lateinit var msgEdt: EditText lateinit var generateQRBtn: Button // on below line we are creating // a variable for bitmap lateinit var bitmap: Bitmap // on below line we are creating // a variable for qr encoder. lateinit var qrEncoder: QRGEncoder override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // on below line we are // initializing our all variables. qrIV = findViewById(R.id.idIVQrcode) msgEdt = findViewById(R.id.idEdt) generateQRBtn = findViewById(R.id.idBtnGenerateQR) // on below line we are adding on click // listener for our generate QR button. generateQRBtn.setOnClickListener { // on below line we are checking if msg edit text is empty or not. if (TextUtils.isEmpty(msgEdt.text.toString())) { // on below line we are displaying toast message to display enter some text Toast.makeText(applicationContext, "Enter your message", Toast.LENGTH_SHORT).show() } else { // on below line we are getting service for window manager val windowManager: WindowManager = getSystemService(WINDOW_SERVICE) as WindowManager // on below line we are initializing a // variable for our default display val display: Display = windowManager.defaultDisplay // on below line we are creating a variable // for point which is use to display in qr code val point: Point = Point() display.getSize(point) // on below line we are getting // height and width of our point val width = point.x val height = point.y // on below line we are generating // dimensions for width and height var dimen = if (width < height) width else height dimen = dimen * 3 / 4 // on below line we are initializing our qr encoder qrEncoder = QRGEncoder(msgEdt.text.toString(), null, QRGContents.Type.TEXT, dimen) // on below line we are running a try // and catch block for initialing our bitmap try { // on below line we are // initializing our bitmap bitmap = qrEncoder.encodeAsBitmap() // on below line we are setting // this bitmap to our image view qrIV.setImageBitmap(bitmap) } catch (e: Exception) { // on below line we // are handling exeption e.printStackTrace() } } } } }
Ahora ejecute su aplicación para ver el resultado.
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA