Android TextView格式化文字

騷劍客發表於2016-06-22

很多情況下,開發者需要新增一些特殊樣式的文字來突出重點內容或者微連結提供視覺反饋,以此提高應用程式的使用者友好度.還有其它例子可以說明文字樣式的用途,舉例如下:

 效果圖:


1.新增超連結.可以通過Html.fromHtml()方法設定TextView的文字內容.文字內容需要簡單處理:在TextView的文字內容中嵌入HTML程式碼.程式碼如下所示:

TextView mText = (TextView) findViewById(R.id.textTV);
String text = "Visit <a href=\"http://manning.com/\"> Manning home page</a>";
mText.setText(Html.fromHtml(text));
mText.setMovementMethod(LinkMovementMethod.getInstance());

2.自動判斷字元並提供連線:  電話,網址,email (android:autoLink="all"支援所有)

  • 在XML中進行設定:

<TextView
   android:id="@+id/textTV"
   android:autoLink="all"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_margin="20dp"
   android:text="@string/hello_world" />


  • 在程式碼中進行設定

TextView mText2 = (TextView) findViewById(R.id.textTV2);
String text = "\n我的URL :http://www.sina.com\n";
text += "我的郵箱:742396867@qq.com\n";
text += "我的電話:13956789918\n";
mText2.setText(text);
mText2.setAutoLinkMask(Linkify.ALL);
mText2.setMovementMethod(LinkMovementMethod.getInstance());//可加可不加


3.給TextView裡面的內容新增前景色或則背景色

TextView mText3 = (TextView) findViewById(R.id.textTV3);
Spannable sText = new SpannableString(mText2.getText());
sText.setSpan(new ForegroundColorSpan(Color.RED), 1, 4, 0);
sText.setSpan(new BackgroundColorSpan(Color.BLUE), 5, 9, 0);
mText3.setText(sText);






相關文章