美文网首页
[Android] SpannableString中设置多个Sp

[Android] SpannableString中设置多个Sp

作者: Speronie | 来源:发表于2018-02-07 14:42 被阅读189次

问题描述

在使用SpannableString给字符串中的部分关键字添加特效(如:颜色,大小)时,利用for循环执行SpannableString.setSpan()方法,发现只有最后一个关键字生效。

// 错误的写法
SpannableString result = new SpannableString("一二三关键字四五六关键字七八");
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.RED);
for(int startIndex : keywordIndex) {
    result.setSpan(colorSpan, startIndex, startIndex + 3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}

问题分析

解决方案

// 正确的写法
SpannableString result = new SpannableString("一二三关键字四五六关键字七八");
for(int startIndex : keywordIndex) {
    ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.RED);
    result.setSpan(colorSpan, startIndex, startIndex + 3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}

相关文章

网友评论

      本文标题:[Android] SpannableString中设置多个Sp

      本文链接:https://www.haomeiwen.com/subject/lnaozxtx.html