Android组件之TextView

在这里介绍几个比较重要与常用的TextView属性。 


android:autoLink:设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)。

举例:

在string.xml中定义以下键值对:

[html]  view plain copy
  1. <string name="hello">Hello World,TextViewTestActivity!</string>  
  2. <string name="app_name">TextViewTest</string>  
  3. <string name="vebUrl">www.hao123.com</string>  
  4. <string name="email">396366184@qq.com</string>  
  5. <string name="phoneNumber">电话号码: 15900001234</string>  
  6. <string name="autoAll">电话号码:15900001234 网址:www.hao123.com 邮箱:396366184@qq.com sword</string>  


 

在autolink_layout中:

 

[html]  view plain copy
  1. <TextView  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="wrap_content"  
  4.     android:text="@string/vebUrl"  
  5.     android:autoLink="web"  
  6.     />  
  7.   
  8.  <TextView  
  9.     android:layout_width="fill_parent"  
  10.     android:layout_height="wrap_content"  
  11.     android:text="@string/email"  
  12.     android:autoLink="email"  
  13.     />  
  14.   
  15.  <TextView  
  16.     android:layout_width="fill_parent"  
  17.     android:layout_height="wrap_content"  
  18.     android:text="@string/phoneNumber"  
  19.     android:autoLink="phone"  
  20.     />  
  21.   
  22.  <TextView  
  23.     android:layout_width="fill_parent"  
  24.     android:layout_height="wrap_content"  
  25.     android:text="@string/mapUrl"  
  26.     android:autoLink="map"  
  27.     />  
  28.   
  29.  <TextView  
  30.     android:id="@+id/tvHtml"  
  31.     android:layout_width="fill_parent"  
  32.     android:layout_height="wrap_content"  
  33.     android:autoLink="all"  
  34.     />  


在虚拟器上效果:

 



android:text 设置显示文本

android:textStyle 设置文本字体类型

android:textColor 设置文本字体颜色

android:background 设置背景颜色

android:singleLine 当值为true时设置单行显示,和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。

android:ellipsize 设置当文字过长时,该控件该如何显示,值为start—省略号显示在开头,end—省略号显示在结尾,midle省略号显示在中间,marquee以跑马灯的方式显示(动画横向移动),以跑马灯的方式显示还需配合其它几个属性:

       android:marqueeRepeatLimit="marquee_forever" 

       android:focusable="true"

       android:focusableInTouchMode="true"

       android:scrollHorizontally="true"  下面的例子中会有实例

 

举例分别介绍几个属性:

在font.xml中:

 

[html]  view plain copy
  1. <?xml version="1.0"encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.    
  7.     <TextView  
  8.        android:layout_width="fill_parent"  
  9.        android:layout_height="wrap_content"  
  10.        android:text="正常的文本内容" />  
  11.    
  12.     <TextView  
  13.        android:layout_width="fill_parent"  
  14.        android:layout_height="wrap_content"  
  15.        android:textStyle="italic"  
  16.        android:textColor="#ff0000"  
  17.        android:text="倾斜的带颜色的字体" />  
  18.    
  19.     <TextView  
  20.        android:layout_width="fill_parent"  
  21.        android:layout_height="wrap_content"  
  22.        android:background="#00ff00"  
  23.        android:textStyle="bold"  
  24.        android:textSize="30dp"  
  25.        android:text="加粗,背景颜色,字体30dp" />  
  26.    
  27.     <TextView  
  28.        android:layout_width="fill_parent"  
  29.        android:layout_height="wrap_content"  
  30.        android:textSize="20dp"      
  31.        android:text="只显示一行字符串超出屏幕为'...'dsfusdiofjdsiofjsdiofjoisdjfiosdjfoisdjfoisdf"  
  32.        android:singleLine="true"/>  
  33.                            
  34.     <TextView  
  35.        android:layout_width="fill_parent"  
  36.        android:layout_height="wrap_content"  
  37.        android:textScaleX="0.5"  
  38.         android:textColor="#ff0000"  
  39.        android:text="红色字体设置显示文字的间隔为0.5" />  
  40.     <TextView  
  41.        android:layout_width="fill_parent"  
  42.        android:layout_height="wrap_content"  
  43.        android:textScaleX="2.0"  
  44.        android:textColor="#ff0000"  
  45.        android:text="红色字体设置显示文字的间隔为2.0" />  
  46.     <TextView  
  47.        android:layout_width="200px"  
  48.        android:layout_height="wrap_content"  
  49.        android:textSize="20dp"  
  50.        android:ellipsize="marquee"        
  51.        android:marqueeRepeatLimit="marquee_forever"   
  52.        android:focusable="true"  
  53.        android:focusableInTouchMode="true"  
  54.        android:scrollHorizontally="true"  
  55.        android:text="文字滚屏文字跑马灯效果文字滚屏文字跑马灯效果" />  
  56.      
  57.     <cn.csdn.activity.BorderTextView  
  58.         android:layout_width="wrap_content"  
  59.        android:layout_height="wrap_content"  
  60.         android:gravity="center"  
  61.         android:padding="10dp"  
  62.        android:text="带边框的文字"/>  
  63. </LinearLayout>  


绘制带边框的文字在cn.csdn.activity.BorderTextView中:

[html]  view plain copy
  1. package cn.sword.activity;  
  2. import android.content.Context;  
  3. import android.graphics.Canvas;  
  4. import android.graphics.Color;  
  5. import android.graphics.Paint;  
  6. import android.util.AttributeSet;  
  7. import android.widget.TextView;  
  8.    
  9. public class MyBorderTextView extendsTextView {  
  10.    
  11.     //必须覆盖带两个参数的构造  
  12.     publicMyBorderTextView(Context context,AttributeSet attrs) {  
  13.        super(context,attrs);  
  14.     }  
  15.    
  16.     //覆盖父类的onDraw()方法  
  17.     publicvoid onDraw(Canvas canvas){  
  18.        super.onDraw(canvas);  
  19.         
  20.        //创建画刷(画笔)  
  21.        Paintpaint = new Paint();  
  22.        //设置绘画颜色  
  23.        paint.setColor(Color.GREEN);  
  24.        //画水平第一条线  
  25.        canvas.drawLine(0,0, this.getWidth()-1, 0, paint);  
  26.        //画垂直第一条线  
  27.        canvas.drawLine(0,0, 0, this.getHeight()-1, paint);  
  28.        //画水平第二条线  
  29.        canvas.drawLine(this.getWidth()-1,0, this.getWidth()-1, this.getHeight()-1, paint);  
  30.        //画垂直第二条线  
  31.        canvas.drawLine(0,this.getHeight()-1 , this.getWidth()-1, this.getHeight()-1, paint);  
  32.         
  33.     }  
  34. }  
  35.    


在模拟器中的显示效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值