본문 바로가기

곳간에서 인심난다/실무

[Android][Kotlin] 문구 부분 색 변경 SpannedString

종속 항목 선언

build.gradle 안

 implementation "androidx.core:core-ktx:$core_version"

 

Utility

fun String.targetColorSpan(
    emphasisString: String, @ColorInt colorRes: Int
): SpannedString {
    if(!this.contains(emphasisString)) return SpannedString(this)

    val splitStrings = this.split(emphasisString.toRegex())

    return buildSpannedString {
        append(splitStrings[0])
        color(colorRes) { append(emphasisString) }
        append(splitStrings[1])
    }
}

반드시 this String 문구 안에 emphasisString 문구가 하나 포함되어야 한다는 제한이 있음