12
15

ํ…์ŠคํŠธ๋ทฐ์˜ textColor๋ฅผ ํ™œ์„ฑํ™”์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ฐ”๊ฟ”์ค˜์•ผํ–ˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ selector๋กœ ๋งŒ๋“ค์–ด์„œ ํ•˜๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ์ƒ‰์ƒ์œผ๋กœ ๋‚˜์™”๋‹ค.

์ฒ˜์Œ์—๋Š” ํ…Œ๋งˆ๊ฐ€ ๋ฌธ์ œ์ธ๊ฐ€ ์‹ถ์–ด theme.xmlํŒŒ์ผ์„ ์กฐ์ž‘ํ•ด๋ดค๋Š”๋ฐ ์ด๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ–ˆ๋Š”๋ฐ, color ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๊ฑฐ๊ธฐ์— selector๋ฅผ ์œ„์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:color="@color/White_01"/>
    <item android:state_activated="false" android:color="@color/Gray_03"/>
</selector>

์ฝ”๋“œ๋Š” ๊ฑด๋“œ๋ฆด๊ฒŒ ์—†๊ณ  /res๋ฐ‘์— color๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ์ด /color์•„๋ž˜์— ์œ„์น˜ํ•˜๋Š” ๋ฆฌ์†Œ์ŠคํŒŒ์ผ์€ Color Resource File๋กœ ์ธ์‹ํ•œ๋‹ค.

color์†์„ฑ์ด ์•„๋‹ˆ๋ผ drawable์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ‰์ƒ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ด color ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์˜ฎ๊ฒจ๋„ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚จ์•„์žˆ๊ฒŒ ๋˜๋‹ˆ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค.

/color ์— ์žˆ๋Š” ์ƒ‰์ƒ์ •๋ณด์™€ /values/colors.xml์€ ๋˜‘๊ฐ™์ด @color/์ƒ‰์ƒ์œผ๋กœ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ /color๋ฐ‘์˜ ํŒŒ์ผ์ด๋ฆ„์ด ๋ฆฌ์†Œ์Šค ID๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

android:textColor="@color/selector_signup_text_color"

์—ฌ๊ธฐ์„œ ์ž‘์„ฑ์„ ๋งˆ์น˜๊ธฐ์—๋Š” ๋‚ด์šฉ์ด ๋ถ€์‹คํ•˜๊ธฐ ๋•Œ๋ฌธ์— selector์˜ state ์†์„ฑ์„ ์‚ดํŽด๋ณด์ž.

selector์˜ state list

๋ชจ๋“  ์ƒํƒœ๊ฐ’์€ boolean์œผ๋กœ true/false๋กœ ๊ตฌ๋ณ„ํ•œ๋‹ค.

android:state_pressed

๊ฐ์ฒด๊ฐ€ ๋ˆŒ๋ ธ์„ ๋•Œ true์ด๋ฉฐ ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆฌ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” false๋‹ค.

android:state_focused

๊ฐ์ฒด์— ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ(์˜ˆ: ํŠธ๋ž™๋ณผ ๋˜๋Š” DํŒจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํŠผ์ด ๊ฐ•์กฐํ‘œ์‹œ๋œ ๊ฒฝ์šฐ) true์ด๋ฉฐ ํฌ์ปค์Šค๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ ์ด ํ•ญ๋ชฉ์ด ์‚ฌ์šฉ๋˜๋ฉด false๋‹ค. ํฌ์ปค์Šค๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋ณผ ์ผ์ด ์ ์œผ๋ฏ€๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

android:state_selected

๊ฐ์ฒด๊ฐ€ ์„ ํƒ๋˜์—ˆ์„ ๋•Œ true์ด๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜์„ ๋•Œ false๋‹ค.

android:state_checkable

๊ฐ์ฒด๊ฐ€ ์„ ํƒ ๊ฐ€๋Šฅํ•  ๋•Œ true์ด๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์„ ํƒ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์„ ๋•Œ false๋‹ค. ๊ฐ์ฒด๊ฐ€ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์œ„์ ฏ๊ณผ ์„ ํƒ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ์œ„์ ฏ ๊ฐ„์— ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค.

android:state_checked

๊ฐ์ฒด๊ฐ€ ์„ ํƒ๋˜์—ˆ์„ ๋•Œ true์ด๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜์„ ๋•Œfalse๋‹ค. ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

android:state_enabled

๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ์„ ๋•Œ(ํ„ฐ์น˜/ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Œ) true์ด๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋˜์—ˆ์„ ๋•Œ false๋‹ค.

android:state_activated

๊ฐ์ฒด๊ฐ€ ์˜๊ตฌ ์„ ํƒ์œผ๋กœ ํ™œ์„ฑํ™”๋  ๋•Œ(์˜ˆ: ์˜๊ตฌ ํƒ์ƒ‰ ๋ทฐ์—์„œ ์ด์ „์— ์„ ํƒํ•œ ๋ชฉ๋ก ํ•ญ๋ชฉ์„ '๊ฐ•์กฐํ‘œ์‹œ'ํ•˜๊ธฐ ์œ„ํ•ด) ์ด ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ true์ด๊ณ , ๊ฐ์ฒด๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉด false๋‹ค.

API ์ˆ˜์ค€ 11๋ถ€ํ„ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

android:state_window_focused

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์— ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌ๊ทธ๋ผ์šด๋“œ์— ์žˆ์Œ) true์ด๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐฝ์— ํฌ์ปค์Šค๊ฐ€ ์—†์„ ๋•Œ(์˜ˆ: ์•Œ๋ฆผ ์ฐฝ์ด ํ’€๋‹ค์šด๋˜๊ฑฐ๋‚˜ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋จ) false๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ activated์ธ๋ฐ, ์˜๊ตฌ ํƒ์ƒ‰(persistent selection) ์ด๋ผ๋Š” ๊ฒŒ ๋ญ”๊ฐ€ ์‹ถ์–ด ์ข€ ์ฐพ์•„๋ณด๋‹ˆ, ํ˜„์žฌ ํ™”๋ฉด์—์„œ ์ผํšŒ์„ฑ์œผ๋กœ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์ƒํƒœ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.


์ฐธ์กฐ:

https://developer.android.com/guide/topics/resources/color-list-resource?hl=ko

๋„์›€์ด ๋๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์„ธ์š”! ๋กœ๊ทธ์ธ ์•ˆํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค ^_^

๋ฐ˜์‘ํ˜•
COMMENT