KotlinでQRコードを生成する方法


QRコードを生成するには、ZXingライブラリを使用します。まず、アプリのbuild.gradleファイルに以下の依存関係を追加します。

implementation 'com.google.zxing:core:3.4.1'
implementation 'com.journeyapps:zxing-android-embedded:3.4.0'

次に、QRコードを生成するためのヘルパー関数を作成します。

import android.graphics.Bitmap
import android.graphics.Color
import com.google.zxing.BarcodeFormat
import com.google.zxing.MultiFormatWriter
import com.google.zxing.WriterException
import com.google.zxing.common.BitMatrix
fun generateQRCode(text: String, width: Int, height: Int): Bitmap? {
    val bitMatrix: BitMatrix
    try {
        bitMatrix = MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height)
    } catch (e: WriterException) {
        e.printStackTrace()
        return null
    }
    val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565)
    for (x in 0 until width) {
        for (y in 0 until height) {
            bitmap.setPixel(x, y, if (bitMatrix[x, y]) Color.BLACK else Color.WHITE)
        }
    }
    return bitmap
}

上記のコードでは、generateQRCode関数が与えられたテキストからQRコードのビットマトリックスを生成し、それをビットマップに変換して返します。ビットマトリックスの各要素が真の場合は黒色、偽の場合は白色となります。

この関数を使用するには、次のように呼び出します。

val qrCodeBitmap = generateQRCode("https://example.com", 500, 500)
if (qrCodeBitmap != null) {
    // QRコードを表示するImageViewなどにビットマップを設定する
    imageView.setImageBitmap(qrCodeBitmap)
} else {
    // QRコードの生成に失敗した場合の処理
    // エラーメッセージを表示するなど
}

上記の例では、"https://example.com"というテキストから500x500ピクセルのQRコードを生成しています。生成されたQRコードのビットマップを`imageView`などの適切なビューに設定することで、QRコードを表示することができます

このようにして、Kotlinを使用して簡単にQRコードを生成することができます。この方法を使って、自分のアプリやプロジェクトでQRコードを活用してみてください。