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

时间: 2024-11-08 18:57:07

Android使用TextView实现无下划线超链接的相关文章

Android使用TextView实现无下划线超链接的方法_Android

本文实例讲述了Android使用TextView实现无下划线超链接的方法.分享给大家供大家参考,具体如下: Android系统默认把网址.电话.地图(geo地址).邮箱等转换为超链接. 具体请查看 android:TextView简单设置文本样式和超链接的方法 和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线: 1.重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接) //无下划线超链接,使用tex

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

本文实例讲述了Android使用TextView实现无下划线超链接的方法.分享给大家供大家参考,具体如下: Android系统默认把网址.电话.地图(geo地址).邮箱等转换为超链接. 具体请查看 android:TextView简单设置文本样式和超链接的方法 和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线: 1.重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接) //无下划线超链接,使用tex

Android如何自定义EditText下划线?_Android

曾经做过一个项目,其中登录界面的交互令人印象深刻.交互设计师给出了一个非常作的设计,要求做出包含根据情况可变色的下划线,左侧有可变图标,右侧有可变删除标志的输入框,如图 记录制作过程: 第一版本 public class LineEditText extends EditText { private Paint mPaint; private int color; public static final int STATUS_FOCUSED = 1; public static final in

网页制作小技巧:如何去掉超链接的下划线

我们可以用CSS语法来控制超链接的形式.颜色变化. 下面我们做一个这样的链接:未被点击时超链接文字无下划线,显示为蓝色;当鼠标在链接上时有下划线,链接文字显示为红色;当点击链接后,链接无下划线,显示为绿色. 实现方法很简单,在源代码的和之间加上如下的CSS语法控制: <style type="text/css">  <!--  a:link { text-decoration: none;color: blue}  a:active { text-decoration

Android如何自定义EditText下划线?

曾经做过一个项目,其中登录界面的交互令人印象深刻.交互设计师给出了一个非常作的设计,要求做出包含根据情况可变色的下划线,左侧有可变图标,右侧有可变删除标志的输入框,如图 记录制作过程: 第一版本 public class LineEditText extends EditText { private Paint mPaint; private int color; public static final int STATUS_FOCUSED = 1; public static final in

Android 中美腻的下划线

本文讲的是Android 中美腻的下划线, 在过去两年里,我经常发现一些尝试去如何提高有关在网页中渲染下划线文本修饰的文章和库.此类问题也同样发生在Android(平台):下划线的文本修饰与降部相交.比较下Android当前如何绘制下划线文本(上图)以及它的替代方案(下图): 你更喜欢哪一种? 尽管我完全认可这些努力,但是我从未喜欢过任何公开的解决方法.目前最新的技术(追求艺术般的状态)-毫无疑问地会强迫开发者们受限于CSS-似乎是通过绘制线性渐变以及多重阴影(我见过多达12层的!)来实现的.这

技巧:实现链接的虚线下划线效果

技巧|链接 修改您的样式表,找下边这段(一般都在开头)a {color:#3399FF;font-weight:Normal; /*字体效果 普通 可以改成bold粗体*/text-decoration:none; /*下划线效果:无下划线*/} a:hover {color:#4499EE;text-decoration:none; /*下划线效果:无下划线*/border-bottom: 1px #0099CC dotted /*加一个只有下边的框 边框为虚线*/} a{}控制连接的效果 a

实现链接的虚线下划线效果

修改您的样式表,找下边这段(一般都在开头) a { color:#3399FF; font-weight:Normal; /*字体效果 普通 可以改成bold粗体*/ text-decoration:none; /*下划线效果:无下划线*/ } a:hover { color:#4499EE; text-decoration:none; /*下划线效果:无下划线*/ border-bottom: 1px #0099CC dotted /*加一个只有下边的框 边框为虚线*/ } a{}控制连接的效

Excel2010里的文字如何添加下划线?

  1.打开Excel表格,选中需要添加下划线的文字内容,接着右键选择"设置单元格格式" 2.在设置单元格格式里选择"字体",系统默认是无下划线的,我们可以根据个人需求将其改为单下划线或者其它都可以. 3.设置完毕后我们就可以在表格里看到添加下划线后的效果啦.