TextView中需要插入图片的话需要用到SpannableStringBuilder或者SpannableString + ImageSpan
SpannableString与SpannableStringBuilder区别,根据业务需要使用
简单点来说,SpannableString构造对象的之后再无法更改String的内容,也不能拼接内容;而SpannableStringBuilder可以通过其append()方法来拼接多个String。
因为Spannable等最终都实现了CharSequence接口,所以可以直接SpannableString和SpannableStringBuilder通过TextView.setText()设置给TextView。这两个特殊地方就是多了setSpan()方法
void setSpan (Object what, int start, int end, int flags)
what: 各种span类型, 如:ImageSpan
start,end:图片取替文字的索引,图片代替文字
flags:图片对于其他文字的应用效果,用来标识在Span范围内的文本前后输入新的字符时是否把它们也应用这个效果
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE、Spanned.SPAN_INCLUSIVE_EXCLUSIVE、Spanned.SPAN_EXCLUSIVE_INCLUSIVE、Spanned.SPAN_INCLUSIVE_INCLUSIVE
INCLUSIVE表示应用该效果,EXCLUSIVE表示不应用该效果,这些是组合意思
例如、