반응형
Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BottomSheetDialog
- google-login
- AWS
- NoSuchMethodError
- socket-client
- mosquitto
- Android
- socket.io
- 오즈뷰어
- Flavors
- firebase-storage
- Galaxy Watch
- 워치
- JNI
- Kotlin
- OZViewer
- mqtt
- cloud-firestore
- socket-server
- git-push
- ozd
- TIZEN
- gradle
- firebase-database
- Java8
- git
- ActivityResult-API
- Dva
- Firebase
- hung-up
Archives
- Today
- Total
Hyeyeon blog
[Android] Zxing으로 바코드 생성하기 본문
반응형
1. Zxing dependency 추가 (참고: Zxing Github)
1-1. min SDK version이 24 이상인 경우
dependencies {
implementation 'com.journeyapps:zxing-android-embedded:4.1.0'
}
1-2. min SDK version이 23 이하인 경우
dependencies {
implementation('com.journeyapps:zxing-android-embedded:4.1.0') { transitive = false }
implementation 'com.google.zxing:core:3.3.0'
}
2. Zxing으로 Bitmatrix를 생성하는 함수와 생성된 Bitmatrix를 Bitmap으로 변환하는 함수
private val WHITE: Int = 0xFFFFFFFF.toInt()
private val BLACK: Int = 0xFF000000.toInt()
fun createBarcode(code: String) : Bitmap{
val widthPx = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 390f,
resources.displayMetrics
)
val heightPx = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 111f,
resources.displayMetrics
)
val format: BarcodeFormat = BarcodeFormat.CODE_128
val matrix: BitMatrix = MultiFormatWriter().encode(code, format, widthPx.toInt(), heightPx.toInt())
val bitmap = createBitmap(matrix)
return bitmap
}
fun createBitmap(matrix: BitMatrix): Bitmap {
val width = matrix.width
val height = matrix.height
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
for (x in 0 until width) {
for (y in 0 until height) {
bitmap.setPixel(x, y, if (matrix.get(x, y)) BLACK else WHITE)
}
}
return bitmap
}
3. 적용
val code = "ABC12345"
val barcode = createBarcode(code)
imageView.setImageBitmap(barcode)
728x90
'개발 > Android' 카테고리의 다른 글
[Android] Api key를 노출시키지 않고 안전하게 사용하는 방법 (0) | 2020.11.29 |
---|---|
[Android] java.lang.NoSuchMethodError: No static method metafactory (0) | 2020.11.27 |
[Android] Bottom Sheet Dialog 에 RecyclerView 적용하기 (0) | 2020.11.25 |
[Android] ImageView로부터 Bitmap 가져오기 (0) | 2020.11.24 |
[Android] 최근 사용 목록에 앱 화면 preview 안보이게 처리 (0) | 2020.11.24 |
Comments