Android TextView可点击span设置按下状态的样式

Android TextView可点击span设置按下状态的样式,android,textview,Android,Textview,我正在对ClickableSpan进行子类化,以自定义TextView中链接的文本样式 private static class LinkSpan extends ClickableSpan { @Override public void onClick(View widget) { // code... } @Override public void updateDrawState(TextPaint ds) { su

我正在对ClickableSpan进行子类化,以自定义TextView中链接的文本样式

private static class LinkSpan extends ClickableSpan {
    @Override
    public void onClick(View widget) {
         // code...
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
        ds.setTypeface(Typeface.create(ds.getTypeface(), Typeface.BOLD));
        ds.setColor(0xff336699);
    }
}
我想在按下或用户触摸链接时更改样式。(就像css中的
a:hover
),但我想不出一种方法来获取
updateDrawState
中的当前状态

有什么办法处理这个问题吗?如果我不能更改文本样式,我希望至少能够更改背景颜色


编辑正如一条评论所指出的,你可以在

找到我更改背景颜色的答案

testTextView.setHighlightColor(Color.BLUE);
在文本视图上

private static class LinkSpan extends ClickableSpan {
    @Override
    public void onClick(View widget) {
         // code...
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
        ds.setTypeface(Typeface.create(ds.getTypeface(), Typeface.BOLD));
        ds.setColor(0xff336699);
    }
}

但是有机会更改文本颜色对我来说更好。

你找到答案了吗?你最终是怎么做到的?不管这对谁有帮助,看看这不是我问的,但我接受了这个答案,因为这是唯一的答案。真正的解决办法是下次不要害羞地在实际答案中发布链接,并将其标记为正确。它将通过使答案更直观来帮助其他人。这解决了我的问题,谢谢!:)@dasony如果这不是答案,那么将其标记为这样是没有意义的。我想,如果你不想发布自己的链接答案,编辑你的问题,让人们指向那个链接,对你来说会更有帮助。