TextVeiw显示丰富的文本

大家都知道TextView主要是在Android中实现文字说明等功能,那么TextView能否显示更加丰富的文本,如URL、字体大小、颜色这些,答案是肯定的!

那么究竟如何来让我们的TextView显示的内容更加丰富多彩呢,这一篇来跟大家一起探讨一下:

首先呢,大家要知道的是,我们网页里能够显示多样性的文字,都归功与HMTL标签对吧,其实在Android的TextView中也预定了一些类似HTML的标签,通过标签可以使TextView控件显示不同颜色、大小、字体的文字:

<font>:设置颜色和字体

<big>:设置大号

<small>:设置小号

<i>\<b>:分别是斜体和粗体

<a>:链接地址

<img>:插入图片

使用这些标签可以用Html.fromHtml方法将这些标签的字符串转换成Charsequence对象,然后再TextView中进行设置;

如果想在显示的文本中将URL地址、邮箱地址、电话产生超链接的效果,可以使用android:autoLink来设置,该属性的规则如下:

属性值                 描述

None          不匹配任何链接(默认)

web                      网址

email                   邮箱

phone               电话号码

map                  匹配映射网址

all                      匹配所有链接


下面通过一个实例来讲解一下如何灵活使用这些标签:

实现的丰富文字TextView截图:



点击"百度"文字链接之后,打开了浏览器并跳转到了百度网址,截图如下:



点击电话号码"+86148998943"之后弹出了拨打电话的界面,截图:



代码如下:

TextViewActivity.Java

[html]  view plain  copy
 print ?
  1. public class Android_TextviewActivity extends Activity {  
  2.     private TextView textView1;  
  3.     private TextView textView2;  
  4.   
  5.     @Override  
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.main);  
  9.         /*  
  10.          * 实现在TextView中显示URL、不同大小、字体、颜色的文本  
  11.          * */  
  12.         textView1=(TextView)findViewById(R.id.textview1);  
  13.         textView2=(TextView)findViewById(R.id.textview2);  
  14.         //添加一段html的标示  
  15.         String html="<font color='red'>I love Android</font><br>";  
  16.         html+="<font color='#00ff00'><big><i> I love Android </i></big></font><p>";  
  17.         html+="<big><a href='http://www.baidu.com'>百度</a></big>";  
  18.         CharSequence charSequence=Html.fromHtml(html);  
  19.         textView1.setText(charSequence);  
  20.         //点击的时候产生超链接  
  21.         textView1.setMovementMethod(LinkMovementMethod.getInstance());  
  22.         String text="我的URL:http://www.sina.com\n";  //这里的\n是换行符  
  23.         text+="我的Email:mrwujay@163.com\n";  
  24.         text+="我的电话:+86148998933";  
  25.         textView2.setText(text);  
  26.         textView2.setMovementMethod(LinkMovementMethod.getInstance());  
  27.     }  
  28.       
  29. }  

main.xml

[html]  view plain  copy
 print ?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="fill_parent"  
  4.     android:orientation="vertical" >  
  5.   
  6.     <TextView  
  7.         android:layout_width="fill_parent"  
  8.         android:layout_height="wrap_content"  
  9.         android:id="@+id/textview1"  
  10.         android:padding="20sp"/>  
  11.       
  12.      <TextView  
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:id="@+id/textview2"  
  16.         android:padding="20sp"  
  17.         android:autoLink="all"  
  18.         android:textSize="20sp"  
  19.         android:text="@string/link_text"/>  
  20.   
  21. </LinearLayout>  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值