오늘도 삽질중

Android Chip Background Color Change Programmatically 본문

안드로이드

Android Chip Background Color Change Programmatically

Choi3950 2021. 4. 4. 22:54
반응형

 

Chip을 동적으로 추가하면서 배경색 및 텍스트 컬러를 지정해줘야 하는 상황이 생겨

여러 블로그를 찾아보고 정리목적으로 글을 작성합니다.

Chip의 모양이나 이미지?를 변경하려면 스타일을 적용해야 되는것으로 판단되고,

단순 컬러변경정도는 스타일이 아닌 코드로 제어가 가능합니다.

 

 

결과화면부터 보시겠습니다.

Chip 클릭시 배경,텍스트컬러,테두리 컬러가 변경됩니다.

 

 

 

 

Chip을 동적으로 추가하는 코드입니다.

Chip의 경우 ChipGroup 에 추가를 해줘야 합니다.

Chip의 사용법 및 기본적인 부분은 다른 블로그나 자료가 많으니 참고하세요

            //Chip Dummy Add
            for (i in 0..20) {
                
                val c = Chip(this).apply {
                    text = "Chip$i"
                    isCheckable = true
                    isCheckedIconVisible = false
                    chipStrokeWidth = 2f
                    setTextSize(TypedValue.COMPLEX_UNIT_DIP , 16f)

                    //테두리
                    chipStrokeColor = ColorStateList(
                        arrayOf(
                                intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked)),
                            intArrayOf(Color.RED, Color.YELLOW)
                    )

                    //백그라운드
                    chipBackgroundColor = ColorStateList(
                        arrayOf(
                            intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked)),
                        intArrayOf(Color.WHITE, Color.BLACK)
                    )

                    //텍스트
                    setTextColor(
                        ColorStateList(
                            arrayOf(
                                intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked)),
                            intArrayOf(Color.BLACK, Color.WHITE)
                        )

                    )
                }

                binding.groupChip.addView(c)

            }

 

 

 

그나저나...오랜만에 글을 작성하는데 구에디터로 왜 안되게 막은건지 모르겠네요.

코드를 붙여 넣는데 저렇게 나오면 보는 사람 생각은 안하는건지....새로운 에디터 저는 그다지 좋은건지 모르겠네요.

반응형
Comments