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

简介:

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

相关文章
|
2月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
41 0
|
3月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
287 3
|
6月前
|
XML IDE 开发工具
13. 【Android教程】文本框 TextView
13. 【Android教程】文本框 TextView
113 2
|
6月前
|
编解码 Android开发
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
102 0
|
7月前
|
Android开发
android TextView HTML 的效果
android TextView HTML 的效果
44 2
|
7月前
|
XML 搜索推荐 Java
Android TextView的字体设置
【5月更文挑战第13天】
271 0
|
XML Android开发 数据格式
Android 中使用SpannableString实现TextView文本超链接跳转功能
Android 中使用SpannableString实现TextView文本超链接跳转功能
244 0
|
Android开发
Android TextView 点击超链接跳转实现
前提:之前遇到过一次textview显示url的方式,但是并未深入探究。但是,上个礼拜一个朋友问我如何在textview上面加载url,并且点击跳转到指定页面。
1655 0
|
Android开发
Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
在Android中,TextView是我们最常用的用来显示文本的控件。 <p>  一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。</p> <p><br></p> <p>   res-layout-main.xml</p
1587 0