์ ๊ฐ ์ง๋๋ฒ์ ํด๋ก ์ฝ๋ฉ ์์ ์ ํ๋ ํ๋ฉด์ ๋๋ค
๊ทผ๋ฐ ์ด์ํ ๋ถ๋ถ์ ๋ณผ์ ์์ฃ ?!
๋ฐ๋ก ์ด ๋ถ๋ถ์ธ๋ฐ์, ๋ ๊ฐ์ง ์๊น์ด ํ ํ ์คํธ๋ทฐ์ ๋ค์ด์์ต๋๋ค!
์ด๋ป๊ฒ ํ๋์ง ๊ถ๊ธํ์ง ์์ผ์ ๊ฐ์?!
(ํ์์ด ํ
์คํธ๋ทฐ ๋๊ฐ์ฐ๋ฉด 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
}