Android TextView 添加下劃線的幾種方式

總結(jié)起來(lái),一共有5種方法:

如果是在資源文件里:
1、字符串資源中設(shè)置下劃線屬性(用<u>標(biāo)簽,最簡(jiǎn)單的方法)

<resources>
    <string name="hello"><u>phone:0123456</u></string>
    <string name="app_name">MyLink</string>
</resources>

2、TextView設(shè)置autoLink屬性(會(huì)主動(dòng)調(diào)用系統(tǒng)瀏覽器,跳轉(zhuǎn)鏈接)

<TextView xmlns:android="http://schemas.android.com/apk/res/android"  
     android:id="@+id/text1"
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     android:autoLink="all"  
     android:text="@string/link_text_auto"  />

如果是代碼里:
1、使用TextView的Paint的屬性

tvTest.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下劃線
tvTest.getPaint().setAntiAlias(true);//抗鋸齒

2、使用SpannableString類(lèi)( 富文本)

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("<u>"+"0123456"+"</u>"));

代碼里面自定義超鏈接樣式:

TextView tv=new TextView(this);
tv.setText(Html.fromHtml("<a href=\"http://blog.csdn.net/CAIYUNFREEDOM\">自定義的超鏈接樣式</a>"));
// 在單擊鏈接時(shí)凡是有要執(zhí)行的動(dòng)作,都必須設(shè)置MovementMethod對(duì)象
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//設(shè)置前景色為紅色
     } 
     tv.setText(style);   
}

另外一篇文章中有幾個(gè)具體的實(shí)例可以參考:
android中的spannable的使用

參考文章:
Android TextView 添加下劃線的幾種方式

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容