Android clickSpan去掉点击颜色实现教程

一、整体流程

首先我们来看一下整个实现的流程,可以用表格展示出来:

步骤 操作
1 创建一个自定义的ClickableSpan
2 重写updateDrawState方法
3 设置ClickableSpan的背景颜色为透明

二、详细步骤及代码

步骤一:创建一个自定义的ClickableSpan

首先需要创建一个自定义的ClickableSpan,代码如下:

public class NoUnderlineClickableSpan extends ClickableSpan {
    @Override
    public void onClick(View widget) {
        // do something when the span is clicked
    }
}

步骤二:重写updateDrawState方法

接下来在自定义的ClickableSpan中重写updateDrawState方法,代码如下:

@Override
public void updateDrawState(TextPaint ds) {
    // super.updateDrawState(ds);
    ds.setUnderlineText(false); // 去掉下划线
}

步骤三:设置ClickableSpan的背景颜色为透明

最后,在使用ClickableSpan的地方设置其背景颜色为透明即可,代码如下:

NoUnderlineClickableSpan clickableSpan = new NoUnderlineClickableSpan();
SpannableString spannableString = new SpannableString("Click here");
spannableString.setSpan(clickableSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance());

三、类图

classDiagram
    class NoUnderlineClickableSpan {
        updateDrawState()
        onClick()
    }

四、饼状图

pie
    title ClickableSpan实现
    "创建ClickableSpan" : 33.3
    "重写updateDrawState方法" : 33.3
    "设置背景颜色为透明" : 33.3

通过以上步骤,你就可以实现Android中点击ClickableSpan去掉点击颜色的效果了。希望对你有所帮助!