前言
项目中难免会遇到给文本添加删除线的效果,比如下面这样的效果。
方案
方案一
结合网上其他的文章,有如下方式:
通过设置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
}
}
欢迎关注个人微信公众号:君伟说,一起成长。