<TextView
android:id="@+id/tv"
android:layout_marginLeft="20dp"
android:layout_marginTop="50dp"
android:layout_marginRight="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
val drawable = resources.getDrawable(R.drawable.ic_share_btn1, null)
val builder = SpannableStringBuilder() // 创建 SpannableStringBuilder
drawable?.let {
val textSize = binding.tv.textSize
val textHeight = textSize.toInt()
val aspectRatio = drawable.intrinsicWidth.toFloat() / drawable.intrinsicHeight
val imageHeight = (textHeight * aspectRatio).toInt()
// 计算图片宽度以适应文本高度
val imageWidth = (imageHeight / aspectRatio).toInt()
drawable.setBounds(0, 0, imageWidth, imageHeight) // 设置图片边界
// 添加文本
builder.append("添加文本添加文本添加文本添加文本添加文本添加文本添加文本添加文本添加文本添加文本")
val imageSpan = ImageSpan(drawable, ImageSpan.ALIGN_CENTER) // 创建 ImageSpan 对象
builder.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) // 设置图片的范围
}.run {
Log.e("--ss", "initSun: 图片加载失败")
}
binding.tv.text = builder // 将 SpannableStringBuilder 设置到 TextView
效果: