Генерация QR-кодов на Kotlin
Kotlin-разработчики могут использовать ZXing для генерации и сканирования QR-кодов на Android. Бесшовная работа с Jetpack Compose и традиционными Android Views.
Установка
Добавьте ZXing в свой Android-проект через Gradle.
implementation("com.google.zxing:core:3.5.3")implementation("com.google.zxing:core:3.5.3")
implementation("com.google.zxing:javase:3.5.3")Генерация QR-кодов на Kotlin с ZXing
Примеры кода с использованием ZXing в Kotlin для 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")@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")
}Генерация QR-кодов через API на Kotlin
Вызовите API QRCode.fun из Kotlin с помощью OkHttp или Ktor для стилизованных QR-кодов.
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-кода
Попробуйте сгенерировать QR-код на Kotlin прямо сейчас.
ZXing vs API
Сравните использование ZXing в Kotlin с API QRCode.fun.
| Функция | Библиотека ZXing | QRCode.fun API |
|---|---|---|
| Сложность настройки | Зависимость Gradle + рендеринг Bitmap | Один HTTP-запрос через OkHttp |
| Кастомизация | Размер, коррекция ошибок, цвета через Bitmap | Полное оформление: цвета, формы, логотипы |
| Офлайн-поддержка | Да | Требуется интернет |
| Обслуживание | Обновление зависимости Gradle | Всегда актуально |
| Форматы вывода | Bitmap (Android) | PNG, SVG |
Сценарии использования QR-кодов в Kotlin
Типичные сценарии для QR-кодов в Kotlin-приложениях.
Android-приложения
Генерируйте и отображайте QR-коды в Android-приложениях для обмена ссылками, контактами, Wi-Fi-данными и платёжной информацией.
Jetpack Compose
Создавайте composable-компоненты QR-кодов с настраиваемым оформлением и анимациями для современных Android-интерфейсов.
Kotlin Multiplatform
Делитесь логикой генерации QR-кодов между Android, iOS и десктопом с помощью Kotlin Multiplatform и API QRCode.fun.
Бэкенд-сервисы
Генерируйте QR-коды в сервисах Ktor или Spring Boot на Kotlin для билетов, счетов и потоков аутентификации.
Часто задаваемые вопросы
Популярные вопросы о генерации QR-кодов на Kotlin.
Начните генерировать QR-коды на Kotlin
Используйте наш бесплатный генератор или интегрируйте API в свои Kotlin и Android приложения.