Вот как я этого добился, код в Kotlin .
1.Сгенерировать растровое изображение штрих-кода (с помощью библиотеки Zxing)
import android.graphics.Bitmap
import android.os.Build
import android.support.annotation.RequiresApi
import com.google.zxing.BarcodeFormat
import com.google.zxing.MultiFormatWriter
import com.journeyapps.barcodescanner.BarcodeEncoder
object BarcodeUtil {
@RequiresApi(Build.VERSION_CODES.KITKAT)
fun generateBarcodeBitmap(barcodeData: String): Bitmap? {
lateinit var multiFormatWriter: MultiFormatWriter
return try {
multiFormatWriter = MultiFormatWriter()
val bitMatrix = multiFormatWriter.encode(barcodeData, BarcodeFormat.CODE_128, 4000, 800)
val barcodeEncoder = BarcodeEncoder()
val imgBitmap = barcodeEncoder.createBitmap(bitMatrix)
imgBitmap
} catch (e: Throwable) {
e.stackTrace
e.cause
e.message
null
}
}
}
Я сгенерирую штрих-код Bitmap
и в конце верну его из блока try
.
2. Загрузите растровое изображение на ImageView
val barCode = mView.findViewById(R.id.img_barcode) as ImageView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Glide.with(activity)
.load(BarcodeUtil.generateBarcodeBitmap(edtBarcode.text.toString()))
.into(barCode)
}
. Я использовал библиотеку Glide
, чтобы установить Barcode Bitmap
на моем ImageView
.Glide
- библиотека загрузки изображений.Узнайте больше об этом из здесь
Следует помнить, что загрузка совершенно новой библиотеки только для достижения одной функциональности не рекомендуется.