>我有字符串:"0123456789"。 我需要从字符串中绘制到指定的数字。 我正在使用SpannableStringBuilder并为每个数字设置ForegroundColorSpan,但它只绘制第一个数字或范围,而不是选定的数字或范围。 那么我如何在这个字符串中为 0、2 和 8 着色呢?
试试这段代码:
val str = "0123456789"
val sb = SpannableStringBuilder()
str.forEach {
val span = ForegroundColorSpan(Color.BLUE)
val spannableString = SpannableString(it.toString())
if(it == '0' || it == '2' || it == '8')
spannableString.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
sb.append(spannableString)
}
// val wordtoSpan = SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers")
//
// wordtoSpan.setSpan(ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
text_view.text = sb
fun ini() {
val str = "0123456789"
val sb = SpannableStringBuilder()
str.forEach {
val span = ForegroundColorSpan(getColor(R.color.colorAccent))
val spannableString = SpannableString(it.toString())
if(it == '0' || it == '2' || it == '8')
spannableString.setSpan(span, 0, 1, Spannable.SPAN_COMPOSING)
sb.append(spannableString)
}
text_view.text = sb
}