作者:lenomon 发布:2011-11-22 14:19 分类:Android 阅读:15,002 11条评论

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 classNoLineClickSpan extendsClickableSpan {
Stringtext ;

publicNoLineClickSpan ( Stringtext ) {
super ( ) ;
this. text =text ;
}

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

@Override
public voidonClick ( Viewwidget ) {
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 = newSpannableString ( "萝卜白菜博客--&gt;http://orgcent.com" ) ;
ClickSpan clickSpan = newNoLineClickSpan (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/ | 萝卜白菜的博客

更多相关文章

  1. android 控制按钮各个状态的样式
  2. Android预定义样式?android:attr/attribute、?attr/attribute和?
  3. 改变android中button的样式
  4. Android自定义对话框Dialog以及主题和样式
  5. Android 实例讲解 Spinner样式修改
  6. Android自定义字体样式Typeface的三种技术方案:Java代码的setType
  7. Android样式和主题
  8. 【Android 设计】:样式_ 设备与显示 | 主题
  9. Android 优惠卷样式

随机推荐

  1. android build Communication error with
  2. android:configChanges screen
  3. android studio 修改生成的apk 包名
  4. Android收藏商品/关注商品
  5. android 进程内存分析
  6. android 窗口如何靠左和靠右边框布局
  7. Android解析Xml字符串例子
  8. android 搭建http服务器AndroidAsync
  9. vs2015 支持Android arm neon Introducin
  10. 7个Android应用程序源代码