Android文本删除线效果

388 阅读1分钟

前言

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

方案

方案一

结合网上其他的文章,有如下方式: 通过设置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
                    }
                }