QR/바코드 스캐너 앱을 개발하다가 동적 버튼이 필요하여 정리를 해보았다. 스캔 결과가 도서나 상품이 나오면 쇼핑 사이트로 이동하고, URL이면 해당 사이트를 띄워줘는 버튼이 생성되어야 한다. 그 외의 경우는 검색 엔진을 호출하는 버튼이 필요하다.
동적 버튼 생성 결과
[웹 사이트 URL 인 경우]
웹 사이트 URL을 보여주고, 바로가기 버튼과 검색엔진 바로가기 버튼을 보여준다.
[웹 사이트 URL 인 경우]
상품이면 상품코드와 상품명을 크롤링해서 가져오고 쇼핑몰과 검색엔진 바로가기를 보여준다.
코틀린 동적 버튼 생성 소스코드
동적 버튼 생성 시 width, height, background 등 다양한 속성 지정이 가능하고 이벤트 처리를 위한 콜백도 가능하다. 버튼이 생성되면 상위의 view에 추가한다.
// 동적버튼 생성 호출
makeButton(100, 50, 3)
// 동적버튼 생성
private fun makeButton(w: Int, h: Int, gb: Int) {
val dynamicButton = Button(this).apply {
width = getDIP(w)
height =getDIP(h)
background = getDrawable(R.drawable.rounded_corner5)
// Layout Margin 추가
val lp = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
lp.setMargins(20, 20, 20, 20);
layoutParams = lp
text = when(gb) {
1 -> {
"Book"
}
2 -> {
"URL"
}
3 -> {
"Product"
}
else ->{
"Search"
}
}
setOnClickListener {
Log.d(TAG, "onCreate: dynamicButton clicked")
when(gb) {
1 -> {
goShopping(1)
} //도서
2 -> {
goWebsite()
} // URL
3 -> {
goShopping(2)
} // 제품
else -> {
searchOnGoogle()
} // 기타
}
}
}
// LinearView에 버튼 추가
btnView2.addView(dynamicButton)
}
반응형
'코드리뷰 > 코틀린 리뷰' 카테고리의 다른 글
안드로이드 QR/바코드 스캐너 앱 게시하다.(Scan All) (0) | 2020.12.13 |
---|---|
안드로이드앱 QR/BAR CODE 정보 크롤링 하기(코틀린) (3) | 2020.12.06 |
안드로이드 앱 리뷰/별점 주기 기능 (rating) (0) | 2020.10.24 |
댓글