[Android] colorSheet로 간단하게 색상 팔레트 구현

구민지·2022년 7월 25일
0

안드로이드에서 팔레트로 색상을 선택할 수 있는 기능을 구현하고 싶었는데
이걸 RadioButton을 커스텀해야하나.. IconToggleButton을 사용해서 구현해야하나.. 복잡한 방법밖에 떠오르지 않아서 이것저것 구글링해보다가 내가 원하는 형태로 바로 구현 가능한 colorSheet 라는 라이브러리를 발견했다 🤩

✨ colorSheet

	//color Sheet
    implementation "dev.sasikanth:colorsheet:1.0.1"

build.gradle(모듈단위) 에 implementation 해준다

✨ Usage

    
    private fun setColor() {
        
        val colors = resources.getIntArray(R.array.colors)
        ColorSheet().colorPicker(
            colors = colors,
            listener = { color ->
                // Handle color
                binding.createColorPicker.backgroundTintList = ColorStateList.valueOf(color)
                Log.d("colorInt", "${color}")
            })
            .show(supportFragmentManager)
        
    }

색깔 설정하는 부분을 함수로 빼서 사용했다
R.array.colors는 팔레트에 넣을 색상 종류가 담긴 array이다
binding.createColorPicker.backgroundTintList = ColorStateList.valueOf(color) 로 선택된 색깔로 지정해준다.

✨ res>values>array (R.array.colors)

<resources>
    <array name="colors">
        <item>#99C0F6</item>
        <item>#BADFD2</item>
        <item>#F6ED99</item>
        <item>#F6BA99</item>
        <item>#B199F6</item>
    </array>
</resources>

💁‍♀️ colorToHex

        Log.d("colorInt", "${color}")
        Log.d("colorString", ColorSheetUtils.colorToHex(color))

color를 그냥가져오면 Int형인데 ColorSheetUtils.colorToHex(color) 로 Hex Code #RRGGBB 형태로 색상정보를 가져올 수 있다.

0개의 댓글