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/ | 萝卜白菜的博客

TextView使用超链接去掉下划线

项目中有一个小需求,就是在textview中支持web地址,这个属性好设置,在textview中配置文件加一行android:autoLink="web"搞定,可是默认的textview样式中带有下划...
  • congjianfei
  • congjianfei
  • 2013年12月24日 14:20
  • 2272

设置TextView中超链接字体颜色、下划线

ClickableSpan:这是超链接相关的样式控制和点击事件的控制类,我们需要对它进行继承,然后修改成我们需要的样式。其中,可以对超链接文本字符进行颜色、字体大小、字体、下划线、点击事件的自定义控制...
  • fwt336
  • fwt336
  • 2016年07月08日 09:52
  • 1178

TextView 设置无下划线超链接

// 设置无下划线超链接 start String textStr = "13771839951;021-12345678"; text.setAutoLinkMask(Linkify.PHONE_N...
  • mkr127
  • mkr127
  • 2014年11月04日 13:47
  • 1146

android 富文本SpannableString去掉下划线

总有些细节设计总监总是揪着不放,做的app中有个textview牵扯到了url链接,但是老大的意思是不能存在下划线,如下图: -----》 代码如下: String msg ...
  • u013762572
  • u013762572
  • 2016年01月24日 15:39
  • 2975

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

Android系统默认把网址、电话、地图(geo地址)、邮箱等转换为超链接。 具体请查看android:TextView设置文本样式和超链接 和HTML中的一样,默认超链接都带下划线的,下面的...
  • JJMM2009
  • JJMM2009
  • 2013年09月23日 16:11
  • 2026

Android中实现TextView超链接五种方式

一共有五种方式:推荐第四种、第五种 1. 直接在xml文件中配置autoLink属性(简单易用,效果单一) autoLink属性一共有六个值,分别是none(正常),web(将文本识别为一个网址),p...
  • lyankj
  • lyankj
  • 2016年07月11日 17:04
  • 6821

Android开发技巧——去掉TextView中autolink的下划线

我们知道,在布局文件中设置textview的autolink及其类型,这时textivew上会显示link的颜色,并且文字下面会有一条下划线,表示可以点击。而在我们在点击textview时,应用将根据...
  • maosidiaoxian
  • maosidiaoxian
  • 2014年09月09日 15:41
  • 24556

Android超链接去下划线--Android学习笔记6-4

Android超链接去下划线 一、前言:       本文是由《TextView中的图文共存问题》延伸出来的知识点讲解;原文地址:《TextView中的图文共存问题》 二、Android超...
  • qq_25465845
  • qq_25465845
  • 2016年04月27日 18:03
  • 594

Android学习—— TextView ClickableSpan 点击链接事件 改超链接颜色

private SpannableStringBuilder dealWeiboContent(String weiboContent, TextView textView) { Patte...
  • janronehoo
  • janronehoo
  • 2012年02月07日 09:48
  • 29289

为 TextView 的部分文字设置超链接样式并监听点击事件

TextView的部分文字设置超链接样式并监听点击事件 修改TextView中部分文字的颜色 flags对一段文字设置一些标识TextView的部分文字设置超链接样式并监听点击事件 package c...
  • lgy64422575
  • lgy64422575
  • 2015年12月30日 10:01
  • 906
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android使用TextView实现无下划线超链接
举报原因:
原因补充:

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