Android TextView 添加下划线的几种方式

总结起来,一共有5种方法:

如果是在资源文件里:
1、字符串资源中设置下划线属性(用标签,最简单的方法)


    phone:0123456
    MyLink

2、TextView设置autoLink属性(会主动调用系统浏览器,跳转链接)


如果是代码里:
1、使用TextView的Paint的属性

tvTest.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线
tvTest.getPaint().setAntiAlias(true);//抗锯齿

2、使用SpannableString类( 富文本)

SpannableString content = new SpannableString(str);
content.setSpan(new UnderLineSpan, 0, str.length(), 0);

3、使用Html.fromHtml()

TextView textView = (TextView)findViewById(R.id.tv_test); 
textView.setText(Html.fromHtml(""+"0123456"+""));

代码里面自定义超链接样式:

TextView tv=new TextView(this);
tv.setText(Html.fromHtml("自定义的超链接样式"));
// 在单击链接时凡是有要执行的动作,都必须设置MovementMethod对象
tv.setMovementMethod(LinkMovementMethod.getInstance());  
CharSequence text  =  tv.getText();
if (text instanceof Spannable){ 
     int  end  =  text.length();   
     Spannable sp  =  (Spannable)tv.getText();   
     URLSpan[] urls = sp.getSpans( 0 , end, URLSpan.class );   
             
     SpannableStringBuilder style = new  SpannableStringBuilder(text);   
     style.clearSpans(); // should clear old spans    
     for (URLSpan url : urls){     
          URLSpan myURLSpan=   new  URLSpan(url.getURL());                        
          style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
          style.setSpan(new//设置前景色为红色
     } 
     tv.setText(style);   
}

另外一篇文章中有几个具体的实例可以参考:
android中的spannable的使用

参考文章:
Android TextView 添加下划线的几种方式

你可能感兴趣的:(Android TextView 添加下划线的几种方式)