Kotlin QR碼函式庫

使用 Kotlin 產生 QR碼

Kotlin 開發者可以使用 ZXing 進行 Android QR碼產生和掃描。與 Jetpack Compose 和傳統 Android Views 無縫相容。

安裝

使用 Gradle 將 ZXing 新增到您的 Android 專案中。

Gradle (Android)
implementation("com.google.zxing:core:3.5.3")
Gradle (with image)
implementation("com.google.zxing:core:3.5.3")
implementation("com.google.zxing:javase:3.5.3")

使用 Kotlin 和 ZXing 產生 QR碼

在 Kotlin for Android 中使用 ZXing 的程式碼範例。

Generate QR Code Bitmap (Android)
import android.graphics.Bitmap
import com.google.zxing.BarcodeFormat
import com.google.zxing.MultiFormatWriter

fun generateQRCode(data: String, size: Int = 300): Bitmap {
    val matrix = MultiFormatWriter().encode(
        data, BarcodeFormat.QR_CODE, size, size
    )

    return Bitmap.createBitmap(size, size, Bitmap.Config.RGB_565).apply {
        for (x in 0 until size) {
            for (y in 0 until size) {
                setPixel(x, y, if (matrix[x, y]) 0xFF1A2B3C.toInt() else 0xFFFFFFFF.toInt())
            }
        }
    }
}

// Usage
val qrBitmap = generateQRCode("https://qrcode.fun")
Jetpack Compose QR Code
@Composable
fun QRCodeImage(
    data: String,
    modifier: Modifier = Modifier,
    size: Int = 300
) {
    val bitmap = remember(data) { generateQRCode(data, size) }

    Image(
        bitmap = bitmap.asImageBitmap(),
        contentDescription = "QR Code",
        modifier = modifier.size(200.dp)
    )
}

// Usage in a Composable
@Composable
fun MyScreen() {
    QRCodeImage(data = "https://qrcode.fun")
}
QRCode.fun API

透過 API 在 Kotlin 中產生 QR碼

使用 OkHttp 或 Ktor 從 Kotlin 呼叫 QRCode.fun API 產生樣式化 QR碼。

Kotlin API 整合
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject

suspend fun generateQRCodeViaAPI(data: String): String {
    val client = OkHttpClient()
    val json = JSONObject().apply {
        put("data", data)
        put("width", 300)
        put("height", 300)
        put("type", "png")
        put("margin", 10)
        put("dotsOptions", JSONObject().apply {
            put("color", "#1A2B3C")
            put("type", "rounded")
        })
        put("cornersSquareOptions", JSONObject().apply {
            put("color", "#8564C3")
            put("type", "extra-rounded")
        })
        put("backgroundOptions", JSONObject().apply {
            put("color", "#FFFFFF")
        })
    }

    val request = Request.Builder()
        .url("https://qrcode.fun/api/generate-qr-styled")
        .post(json.toString().toRequestBody("application/json".toMediaType()))
        .build()

    val response = client.newCall(request).execute()
    val result = JSONObject(response.body?.string() ?: "")
    return result.getString("data") // base64 PNG data URL
}

即時 QR碼預覽

立即嘗試使用 Kotlin 產生 QR碼。

QR碼預覽

ZXing vs API

比較在 Kotlin 中使用 ZXing 與 QRCode.fun API。

功能ZXing 函式庫QRCode.fun API
設定複雜度Gradle 相依性 + Bitmap 渲染透過 OkHttp 發送單次 HTTP 請求
自訂大小、糾錯等級、透過 Bitmap 設定顏色完整樣式:顏色、形狀、標誌
離線支援需要網路
維護Gradle 相依性更新始終保持最新
輸出格式Bitmap (Android)PNG, SVG

Kotlin QR碼使用情境

Kotlin 應用中 QR碼的常見情境。

Android 應用

在 Android 應用中產生和顯示 QR碼,用於分享連結、聯絡人、Wi-Fi 憑證和付款資訊。

Jetpack Compose

建立可組合的 QR碼元件,帶有自訂樣式和動畫,用於現代 Android UI。

Kotlin Multiplatform

使用 QRCode.fun API 透過 Kotlin Multiplatform 在 Android、iOS 和桌面之間共享 QR碼產生邏輯。

後端服務

在 Ktor 或 Spring Boot Kotlin 服務中產生 QR碼,用於票券、發票和身份驗證流程。

常見問題

關於使用 Kotlin 產生 QR碼的常見問題。

對於 Android,ZXing(zxing:core)是標準選擇。對於 Kotlin Multiplatform 或伺服器端,考慮使用 QRCode.fun API 以保持跨平台一致性。

開始使用 Kotlin 產生 QR碼

使用我們的免費產生器或將 API 整合到您的 Kotlin 和 Android 應用中。