Библиотека:
implementation 'androidmads.library.qrgenearator:QRGenearator:1.0.3'
MainActivity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import androidmads.library.qrgenearator.QRGContents
import androidmads.library.qrgenearator.QRGEncoder
import com.google.zxing.WriterException
class MainActivity : AppCompatActivity() {
var im: ImageView? = null
var bGenerate: Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
im = findViewById(R.id.imageView)
bGenerate = findViewById(R.id.button)
bGenerate?.setOnClickListener {
generateQrCode("Поставь лайк если понравилось видео!!")
}
}
private fun generateQrCode(text: String){
val qrGenerator = QRGEncoder(text, null, QRGContents.Type.TEXT, 500)
try {
val bMap = qrGenerator.encodeAsBitmap()
im?.setImageBitmap(bMap)
} catch (e: WriterException){
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:background="#6E6E6E"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:text="Generate"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent" />
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="5dp"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:srcCompat="@tools:sample/avatars" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
Спасибо Вам, Сергей, за урок, все понятно, доходчиво.
import androidmads.library.qrgenearator.QRGContents
import androidmads.library.qrgenearator.QRGEncoder
Красным подсвечивает эти библиотеки и не работает
\ вот нашла такой вариант:
библиотека:
implementation ‘com.journeyapps:zxing-android-embedded:4.3.0’
и код, где вводишь текст и кнопка генерирует qr код.
тут im – imageView, bGenerate – Button y edT – EditText
class MainActivity : AppCompatActivity() {
var im: ImageView? = null
var bGenerate: Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
im = findViewById(R.id.im)
var edT: EditText = findViewById(R.id.edT)
bGenerate = findViewById(R.id.bGenerate)
bGenerate?.setOnClickListener {
try {
val barcodeEncode: BarcodeEncoder = BarcodeEncoder()
val bitmap : Bitmap = barcodeEncode.encodeBitmap(edT.getText().toString(), BarcodeFormat.QR_CODE, 750, 750)
im?.setImageBitmap(bitmap)
} catch (e: WriterException){}
}
}
}
код OXANA отлично работает, но вот когда подключаешь зависимость
implementation ‘me.dm7.barcodescanner:zbar:1.8.4’
для чтения QR-кода, то проект не компилируется и выдает ошибку
Duplicate class found
Есть идеи как это победить?
Добавьте
android.enableJetifier=true
в gradle.properties
Я тоже нашёл этот вариант. Отлично работает с английскими буквами. Русские буквы как-то обрабатывает, но они потом не читаются с QR кода, заменяются на знак вопроса.
Аналогичная проблема
Подскажите что не так с этой библиотекой
implementation ‘androidmads.library.qrgenearator:QRGenearator:1.0.3’
после синхронизации не запускается приложение
Возможно не поддерживает более новые версии (не тестировал)
Чуть выше есть решение от “OXANA” (используется другая библиотека)
Вот все изменения, что бы это приложение работало сегодня:
1. В файл build.gradle.kts(module) добавляем зависимости:
implementation (“com.github.androidmads:QRGenerator:1.0.5”)
implementation (“com.google.zxing:core:3.2.0”)
2. В файл settings.gradle.kts(project settings) в секцию repositories {}
добавляем:
maven {
url = uri(“https://www.jitpack.io” )
}
3. Все импорты начнут работать. Единственное отличие, поменялся метод bitmap
val bMap = qrGenerator.getBitmap()