有时候在开发中需求会有文本中带有图片。类似下图:
解决方式如下:
fun setDrawableInTxt(context: Context?, tv: TextView?, str: String?, drawable: Int,gravity: Int = ImageSpan.ALIGN_BOTTOM) {
val ss = SpannableString("logo")
val d = context?.resources?.getDrawable(drawable)//得到drawable对象,即所要插入的图片
d?.setBounds(0, 0, d.intrinsicWidth, d.intrinsicHeight)
val span = ImageSpan(d, gravity)//用这个drawable对象代替字符串easy
//包括0但是不包括"easy".length()即:4。[0,4)。值得注意的是当我们复制这个图片的时候,实际是复制了"easy"这个字符串。
ss.setSpan(span, 0, "logo".length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
tv?.text = ""
tv?.append(ss)
tv?.append(" $str")
}
当前添加的位置是文本的最前面,若有需求可以根据需求自行改动使用,代码使用的是kotlin,若有不明白的可以底下回复我。