Android使用TextView实现无下划线超链接

转载 2016年08月28日 16:40:20

Android系统默认把网址、电话、地图(geo地址)、邮箱等转换为超链接。
具体请查看android:TextView设置文本样式和超链接

和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线:

1、重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//无下划线超链接,使用textColorLink、textColorHighlight分别修改超链接前景色和按下时的颜色
private class NoLineClickSpan extends ClickableSpan { 
    String text;

    public NoLineClickSpan(String text) {
        super();
        this.text = text;
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setColor(ds.linkColor);
        ds.setUnderlineText(false); <span style="color: red;">//去掉下划线</span>
    }

    @Override
    public void onClick(View widget) { 
        processHyperLinkClick(text); <span style="color: red;">//点击超链接时调用</span>
    }
}


2、把超链接文本封装为NoLineClickSpan对象,并添加到TextView中

1
2
3
4
5
6
TextView tv = findViewById(R.id.tv_click);
SpannableString spStr = new SpannableString("萝卜白菜博客--&gt;http://orgcent.com");
ClickSpan clickSpan = new NoLineClickSpan(vo); //设置超链接
spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv.append(spStr);
tv.setMovementMethod(LinkMovementMethod.getInstance());

PS:不用把TextView的属性autoLink设为”all”.

3、设置超链接为可点击状态

1
tv.setMovementMethod(LinkMovementMethod.getInstance());

PS:在NoLineClickSpan类中实现onClick()回调方法.

转载请注明地址: http://orgcent.com/android-textview-no-underline-hyperlink/ | 萝卜白菜的博客

相关文章推荐

Android TextView中实现点击文本超链接(无下划线)的封装类

Android TextView中实现点击文本超链接的封装类

【Android开发日记】TextView超链接启动 Activity,取消下划线自定义颜色

需求如题: 代码1:main.xml
  • GeekLei
  • GeekLei
  • 2014年07月09日 18:41
  • 1585

安卓快速实现关键字变色,搜索字变红,点击字体打电话,textview斜体,电商价格删除线,绿色下划线,图片(表情,图文混排) textview超链接跳转

安卓快速实现关键字变色,搜索字变红,点击字体打电话,textview斜体,电商价格删除线,绿色下划线,图片(表情,图文混排) textview超链接跳转...

Textview设置不同颜色,下划线,加粗,超链接(SpannableString)

Textview设置不同颜色,下划线,加粗,超链接(SpannableString)
  • dailog
  • dailog
  • 2016年09月02日 13:28
  • 1063

Android无下划线text超链接

  • 2015年06月08日 12:24
  • 1.37MB
  • 下载

Android系列教程:TextView小组件的使用--附带超链接和跑马灯效果

一:新建HelloTextView 工程   新建一个Hello world详细步骤可以参见   Android教程之三:第一个Android应用,HelloWorld   。创建设...

Android的TextView使用Html来处理图片显示、字体样式、超链接等

下文来自:http://www.cnblogs.com/playing/archive/2011/03/17/1987033.html --------------------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android使用TextView实现无下划线超链接
举报原因:
原因补充:

(最多只允许输入30个字)