TextView动态设置图片,实现图文混排

可以使用两种方式实现设置图片

1.通过这种方式不用每次设置drawable的大小    ,图片位置有一定限制,只能在文本的上下左右。不能插入到文本中去,且图片只能上下或者左右居中显示。 

Drawable drawableLeft = ContextCompat.getDrawable( mContext, R.mipmap.ic_match_smile)

contentTv.setCompoundDrawablesWithIntrinsicBounds(drawableLeft,
                            null, null, null);

 

2.在文本指定位置添加一张本地图片并设置前面的文字为指定颜色实现图文混排,图片位置可以随意设置,更灵活

           val money = "500"
            val string = mContext.getString(R.string.coins_from_this_call, it, money)
            val spannableString = SpannableString(string)
            val image = ImageSpan(mContext, R.mipmap.ic_coin_small, DynamicDrawableSpan.ALIGN_BOTTOM)
            val index = spannableString.indexOf(money)
//动态设置图片
            spannableString.setSpan(image, index +
                    money.length, index
                    + money.length + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
//动态设置字体颜色
            spannableString.setSpan(ForegroundColorSpan(ContextCompat.getColor(mContext, R.color.common_color_FFC300)), index, index + money.length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)

tvContent.text = spannableString
  val text =“2.99/.99”;
//设置字体大小
            textSpan.setSpan(AbsoluteSizeSpan(DensityUtil.dip2px(context, 16f)), 0, text.indexOf("/"), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            textSpan.setSpan(StyleSpan(Typeface.BOLD), 0, text.indexOf("/"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置删除线
            textSpan.setSpan(StrikethroughSpan(), text.indexOf("/"), text.length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//设置字体大小
            textSpan.setSpan(AbsoluteSizeSpan(DensityUtil.dip2px(context, 12f)), text.indexOf("/"), text.length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            tv_action?.text = textSpan

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值