一种方法是使用SpannableStringBuilder. 要添加粗体文本,您可以这样做:
val text = SpannableStringBuilder()\n .append("\xd0\x92 \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb5")\n .append(" ")\n .bold { append("\xd0\xa2\xd0\xb5\xd0\xbb\xd0\xb5\xd1\x84\xd0\xbe\xd0\xbd") }\nRun Code Online (Sandbox Code Playgroud)\nDrawableRes要添加图像,您可以使用像这样的手动烹饪扩展(我仅为您编写):
fun SpannableStringBuilder.drawable(\n tv: TextView,\n @DrawableRes drawable: Int,\n ): SpannableStringBuilder {\n val icon = ContextCompat.getDrawable(tv.context, drawable)!!\n icon.setBounds(0, 0, tv.lineHeight, tv.lineHeight)\n return inSpans(ImageSpan(icon, DynamicDrawableSpan.ALIGN_BOTTOM)) { append("$drawable") }\n }\nRun Code Online (Sandbox Code Playgroud)\n因此,第一个带有图像的字符串的最终代码将如下所示:
\nval text = SpannableStringBuilder()\n .append("\xd0\x92 \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb5")\n .append(" ")\n .bold { append("\xd0\xa2\xd0\xb5\xd0\xbb\xd0\xb5\xd1\x84\xd0\xbe\xd0\xbd") }\n .append(" ")\n .drawable(binding.tv, R.drawable.telephone)\n .append(" ")\n .append("\xd0\xbd\xd0\xb0\xd0\xb6\xd0\xbc\xd0\xb8\xd1\x82\xd0\xb5")\n .append(" ")\n .bold { append("\xd0\xbd\xd0\xb5\xd0\xb4\xd0\xb0\xd0\xb2\xd0\xbd\xd0\xb8\xd0\xb5") }\n .append(" ")\n .drawable(binding.tv, R.drawable.clock)\n\nbinding.tv.text = text\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |