开发常有需求,一句文案中突出部分内容显示红色,如下图样式
如何实现呢,直接上代码
/**
* 文案部分文字标红
* copywriting:文案内容
* activeTitle:需要凸显的内容
*/
fun getMarkedRedTitle(copywriting: String, activeTitle: String): CharSequence {
if (activeTitle.isNotEmpty() && title.contains(activeTitle)) {
runCatching {
val sub = title.split(activeTitle)
val newTitle = SpannableString(copywriting)
newTitle.setSpan(
ForegroundColorSpan(Color.parseColor("#FF3B15")),
sub[0].length,
sub[0].length + activeTitle.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
//内容文案标题
return newTitle
}.onFailure {
return title
}
}
return title
}
然后直接使用即可 textView.setText(getMarkedRedTitle("Save 66% on new user specials", "66%"))