最佳答案
一种方法是使用 SpannableStringBuilder
。要添加粗体文本,您可以这样做:
val text = SpannableStringBuilder()
.append("В программе")
.append(" ")
.bold { append("Телефон") }
要添加图像,您可以使用这样的 hand cook 扩展(我只为 DrawableRes
为您编写):
fun SpannableStringBuilder.drawable(
tv: TextView,
@DrawableRes drawable: Int,
): SpannableStringBuilder {
val icon = ContextCompat.getDrawable(tv.context, drawable)!!
icon.setBounds(0, 0, tv.lineHeight, tv.lineHeight)
return inSpans(ImageSpan(icon, DynamicDrawableSpan.ALIGN_BOTTOM)) { append("$drawable") }
}
因此,您的第一个带图像的字符串的最终代码将如下所示:
val text = SpannableStringBuilder()
.append("В программе")
.append(" ")
.bold { append("Телефон") }
.append(" ")
.drawable(binding.tv, R.drawable.telephone)
.append(" ")
.append("нажмите")
.append(" ")
.bold { append("недавние") }
.append(" ")
.drawable(binding.tv, R.drawable.clock)
binding.tv.text = text
关于Android:如何在一个 TextView 中组合文本和图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66424760/