Android使用TextView实现无下划线超链接
2015-10-10 16:29
639 查看
Android系统默认把网址、电话、地图(geo地址)、邮箱等转换为超链接。
具体请查看android:TextView设置文本样式和超链接
和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线:
1、重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接)
2、把超链接文本封装为NoLineClickSpan对象,并添加到TextView中
PS:不用把TextView的属性autoLink设为”all”.
3、设置超链接为可点击状态
PS:在NoLineClickSpan类中实现onClick()回调方法.
具体请查看android:TextView设置文本样式和超链接
和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线:
1、重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接)
//无下划线超链接,使用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); //去掉下划线 } @Override public void onClick(View widget) { processHyperLinkClick(text); //点击超链接时调用 } }
2、把超链接文本封装为NoLineClickSpan对象,并添加到TextView中
TextView tv = findViewById(R.id.tv_click); SpannableString spStr = new SpannableString("萝卜白菜博客-->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、设置超链接为可点击状态
tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:在NoLineClickSpan类中实现onClick()回调方法.
相关文章推荐
- Android 图片加载和缓存库 Glide
- Android viewpager 实现画廊效果 左右可见部分子view
- Android radius上边两个圆角,底下是方角的实现
- Android项目的打包签名及应用的版本升级(二)
- Android笔记(三十五) Android中AsyncTask
- Android中索引关联联系人
- MQTT下Android客户端消息持久化
- 地图中坐标转换的那些事儿
- Android Socket进程通信——Client与Server之间的通信机制
- 强烈推荐转载-Android 性能测试
- android键盘弹出判断,计算键盘外的高度。
- Android中让Dialog全屏
- 黑马66期android学习笔记 day7_Broadcast Receiver学习笔记
- Android Studio中关于修改包名的相关问题
- Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3
- 【转】ubuntu连接android设备(附最简单方法)
- Android调试 Logcat中查看System.out信息
- Android - Activity的生命周期
- Android Camera HAL3中预览preview模式下的控制流
- Android html5页面拨打电话号码发短信发邮箱