无法解析 EAN13 条码
Cannot Resolve EAN13 Barcode
我正在尝试创建 EAN 13 条形码。我能够创建 Code128 条形码,但 EAN 13 似乎无法正常工作。我环顾了 SO 和网络,但似乎没有任何效果。非常感谢任何解决此问题的帮助。
BarcodeActivity.kt
class BarcodeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_barcode)
displayBitmap(displayBitStampValue)
}
private fun displayBitmap(value: String) {
val widthPixels = resources.getDimensionPixelSize(R.dimen.width_barcode)
val heightPixels = resources.getDimensionPixelSize(R.dimen.height_barcode)
image_barcode.setImageBitmap(
createBarcodeBitmap(
barcodeValue = value,
barcodeColor = getColor(R.color.colorPrimary),
backgroundColor = getColor(android.R.color.white),
widthPixels = widthPixels,
heightPixels = heightPixels
)
)
text_barcode_number.text = value
}
private fun createBarcodeBitmap(
barcodeValue: String,
@ColorInt barcodeColor: Int,
@ColorInt backgroundColor: Int,
widthPixels: Int,
heightPixels: Int
): Bitmap {
val bitMatrix = EAN13Writer().encode(
barcodeValue,
BarcodeFormat.EAN13,
widthPixels,
heightPixels
)
val pixels = IntArray(bitMatrix.width * bitMatrix.height)
for (y in 0 until bitMatrix.height) {
val offset = y * bitMatrix.width
for (x in 0 until bitMatrix.width) {
pixels[offset + x] =
if (bitMatrix.get(x, y)) barcodeColor else backgroundColor
}
}
val bitmap = Bitmap.createBitmap(
bitMatrix.width,
bitMatrix.height,
Bitmap.Config.ARGB_8888
)
bitmap.setPixels(
pixels,
0,
bitMatrix.width,
0,
0,
bitMatrix.width,
bitMatrix.height
)
return bitmap
}
}
我猜对了 - 我只是把条形码值的数字放错了
我正在尝试创建 EAN 13 条形码。我能够创建 Code128 条形码,但 EAN 13 似乎无法正常工作。我环顾了 SO 和网络,但似乎没有任何效果。非常感谢任何解决此问题的帮助。
BarcodeActivity.kt
class BarcodeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_barcode)
displayBitmap(displayBitStampValue)
}
private fun displayBitmap(value: String) {
val widthPixels = resources.getDimensionPixelSize(R.dimen.width_barcode)
val heightPixels = resources.getDimensionPixelSize(R.dimen.height_barcode)
image_barcode.setImageBitmap(
createBarcodeBitmap(
barcodeValue = value,
barcodeColor = getColor(R.color.colorPrimary),
backgroundColor = getColor(android.R.color.white),
widthPixels = widthPixels,
heightPixels = heightPixels
)
)
text_barcode_number.text = value
}
private fun createBarcodeBitmap(
barcodeValue: String,
@ColorInt barcodeColor: Int,
@ColorInt backgroundColor: Int,
widthPixels: Int,
heightPixels: Int
): Bitmap {
val bitMatrix = EAN13Writer().encode(
barcodeValue,
BarcodeFormat.EAN13,
widthPixels,
heightPixels
)
val pixels = IntArray(bitMatrix.width * bitMatrix.height)
for (y in 0 until bitMatrix.height) {
val offset = y * bitMatrix.width
for (x in 0 until bitMatrix.width) {
pixels[offset + x] =
if (bitMatrix.get(x, y)) barcodeColor else backgroundColor
}
}
val bitmap = Bitmap.createBitmap(
bitMatrix.width,
bitMatrix.height,
Bitmap.Config.ARGB_8888
)
bitmap.setPixels(
pixels,
0,
bitMatrix.width,
0,
0,
bitMatrix.width,
bitMatrix.height
)
return bitmap
}
}
我猜对了 - 我只是把条形码值的数字放错了