๐ŸŽ Spannable์„ ํ™œ์šฉํ•ด ํ•œ TextView์— ๋‘ ๊ฐ€์ง€ ์ƒ‰๊น” ์‚ฌ์šฉํ•˜๊ธฐ

GongBaekยท2024๋…„ 3์›” 10์ผ
0
post-thumbnail

๐ŸŽ‰ ํ•œ ํ…์ŠคํŠธ๋ทฐ์— ๋‘ ๊ฐ€์ง€ ์ƒ‰๊น” ์‚ฌ์šฉํ•˜๊ธฐ

์ œ๊ฐ€ ์ง€๋‚œ๋ฒˆ์— ํด๋ก ์ฝ”๋”ฉ ์ž‘์—…์„ ํ–ˆ๋˜ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค

๊ทผ๋ฐ ์ด์ƒํ•œ ๋ถ€๋ถ„์„ ๋ณผ์ˆ˜ ์žˆ์ฃ ?!

๋ฐ”๋กœ ์ด ๋ถ€๋ถ„์ธ๋ฐ์š”, ๋‘ ๊ฐ€์ง€ ์ƒ‰๊น”์ด ํ•œ ํ…์ŠคํŠธ๋ทฐ์— ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค!

์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š”?!

(ํŒ€์›์ด ํ…์ŠคํŠธ๋ทฐ ๋‘๊ฐœ์“ฐ๋ฉด PR ์•ˆ๋ฐ›์•„์ค€๋‹ค๊ณ  ํ˜‘๋ฐ•ํ–ˆ์–ด์š”)

๐Ÿ’ก SpannableString์ด๋ผ๋Š” ๋…€์„์ž…๋‹ˆ๋‹ค!

SpannableString์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด์„ ํ‘œ์‹œํ•˜๋Š” ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ํ…์ŠคํŠธ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์Šคํƒ€์ผ์ด๋‚˜ ์„œ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…์ŠคํŠธ์˜ ์ผ๋ถ€๋ถ„์— ๋‹ค๋ฅธ ๊ธ€๊ผด, ํฌ๊ธฐ, ์ƒ‰์ƒ, ๋ฐ‘์ค„, ์ค‘๊ฐ„์„  ๋“ฑ์˜ ์„œ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด, SpannableString์€ ๋ฌธ์ž์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด ์ผ๋ถ€์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ…์ŠคํŠธ๋ฅผ ๋” ํ’๋ถ€ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SpannableString์— ๋Œ€ํ•œ ์„ค๋ช…์ธ๋ฐ์š”, ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€ ํ•œ ๋ฒˆ ๋ณด์‹œ์ฃ !

val spannableEvent = SpannableString(tvEvent.text)
            spannableEvent.setSpan(
                ForegroundColorSpan(Color.parseColor("#FFFFFF")),
                0,
                3,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
            )
            tvEventTitle.text = spannableEvent

์ด์ฒ˜๋Ÿผ ์ ์šฉํ•˜๋ฉด 0~3 ์œ„์น˜์— ์žˆ๋Š” ๊ธ€์ž๋ฅผ #FFFFFF๋กœ ์ ์šฉํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค!

์ €๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋…น์ƒ‰์„ ํ–ˆ๊ฑฐ๋“ ์š” ๐Ÿ˜Š

์—ฌ๋Ÿฌ๋ถ„๋“ค๋„ ํ•œ ํ…์ŠคํŠธ๋ทฐ์— ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”!

์ €๋Š” ์ด๋Ÿฐ ํ…์ŠคํŠธ๋ทฐ๊ฐ€ ์ด๊ฒƒ๊นŒ์ง€ ๋‘ ๊ฐœ๊ฐ€ ์žˆ์–ด์„œ ํ•จ์ˆ˜๋กœ ๋ฌถ์—ˆ๋‹ต๋‹ˆ๋‹ค!!

private fun setupTitleColor() {
        with(binding) {
            val spannableRecommendTitle = SpannableString(tvRecommendTitle.text)
            spannableRecommendTitle.setSpan(
                ForegroundColorSpan(Color.parseColor("#3BE084")),
                0,
                5,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
            )
            tvRecommendTitle.text = spannableRecommendTitle

            val spannableEventTitle = SpannableString(tvEventTitle.text)
            spannableEventTitle.setSpan(
                ForegroundColorSpan(Color.parseColor("#FFFFFF")),
                0,
                3,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
            )
            tvEventTitle.text = spannableEventTitle
        }
profile
Junior Android Developer

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด