Android开发文本删除线效果(kotlin+SpannableString)

前言

项目中难免会遇到给文本添加删除线的效果,比如下面这样的效果。
在这里插入图片描述

方案

方案一

结合网上其他的文章,有如下方式:
通过设置setPaintFlags

// 添加删除线
textview.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

//字体变清晰
textview.getPaint().setFlags(Paint.ANTI_ALIAS_FLAG);

//可以合并一起写为:
mTextView.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);

方案二

其实还可以通过SpannableString来实现:

rootView.findViewById<TextView>(R.id.tv_money)?.let {
                    if (TextUtils.isEmpty(transFee)) {
                       it.text =  "-"
                    } else {
                        var str : SpannableString = SpannableString("¥${TempStringUtil.formatRMBWithoutChar(transFee)}")
                        var span : StrikethroughSpan = StrikethroughSpan();
                        str.setSpan(span,0, str.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
                        var colorSpan = ForegroundColorSpan(rootView.resources.getColor(R.color.color_6604060e))
                        str.setSpan(colorSpan,0, str.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
                        it.text = str
                    }
                }

欢迎关注个人微信公众号:君伟说,一起成长。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值