TextView属性大全

今天研究了TextView一天了,发现网上有一篇讲TextView属性的,非常全,收藏一下先。

发现TextView有一个比较大的问题,就是文字排版的问题,遇到数字,字母,符号等就会有问题,目前还没有什么解决方法。

如果有高人研究出方法来解决,请指教一下哈。

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

  android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
  android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,

  也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。

  android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

  android:cursorVisible设定光标为显示/隐藏,默认显示。

  android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”

  android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

  android:drawableLeft在text的左边输出一个drawable,如图片。

  android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

   android:drawableRight在text的右边输出一个drawable。

  android:drawableTop在text的正上方输出一个drawable。

  android:editable设置是否可编辑。

  android:editorExtras设置文本的额外的输入数据。

  android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;

”marquee” ——以跑马灯的方式显示(动画横向移动)

  android:freezesText设置保存文本的内容以及光标的位置。

  android:gravity设置文本位置,如设置成“center”,文本将居中显示。

  android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。

  android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细

说明,此处无用。

  android:imeActionId设置IME动作ID。

  android:imeActionLabel设置IME动作标签。

  android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。

  android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

  android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。

  android:linksClickable设置链接是否点击连接,即使设置了autoLink。

  android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

  android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度

  android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

  android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

  android:maxLength限制显示的文本长度,超出部分不显示。

  android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。

  android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

  android:minLines设置文本的最小行数,与lines类似。

  android:lineSpacingExtra设置行间距。

  android:lineSpacingMultiplier设置行间距的倍数。如”1.2”

  android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

  android:password以小点”.”显示文本

  android:phoneNumber设置为电话号码的输入方式。

  android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。

  android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。

  android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

  android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。


    android:shadowDx设置阴影横向坐标开始位置。
  android:shadowDy设置阴影纵向坐标开始位置。

  android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

  android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine "    

android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

  android:text设置显示文本.

  android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的

外观。可设置的值如下:

textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmal

l/textAppearanceSmallInverse

  android:textColor设置文本颜色

  android:textColorHighlight被选中文字的底色,默认为蓝色

  android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。

  android:textColorLink文字链接的颜色.

  android:textScaleX设置文字之间间隔,默认为1.0f。

  android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”

  android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

  android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

  android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

  android:maxHeight设置文本区域的最大高度

  android:minHeight设置文本区域的最小高度

  android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。

  android:maxWidth设置文本区域的最大宽度

  android:minWidth设置文本区域的最小宽度


android.app.Activity中
public View findViewById (int id)
Since: API Level 1

Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle).
Returns

    * The view if found or null otherwise. 
这里的findViewById是在当前Active的View根及其儿子中通过Id寻找View
Active的View根一般是在其在onCreate函数中可以通过setContentView(R.layout.main)这种形式来设置。

android.view.View中


public final View  findViewById  (int id)
Since: API Level 1

Look for a child view with the given id. If this view has the given id, return this view.
Parameters
id      The id to search for.
Returns

     * The view that has the given id in the hierarchy or null 
因为是 findViewById在是从View及其儿子中查找,所以即使几个layout的XML文件中的View的id号相同的话,只要他们没有相同的父节点 或有相同的父亲节点,但 不在父节点及以上节点 调用 findViewById 通过id来查找他们就是没有问题。

一般我都是在layout的XML文件中设置View的id。
比如
<TextView 
    android:id="@+id/lable2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:editable="false"/>
<View
 android:id ="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View>


Android自定义View实现很简单

继承View,重写构造函数、onDraw,(onMeasure)等函数。

如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml。在其中定义你的属性。

在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://schemas.android.com/apk/res/你的自定义View所在的包路径".

在使用自定义属性的时候,使用前缀:属性名,如my:textColor="#FFFFFFF"。

实例:

 

  1. package demo.view.my;   
  2. import android.content.Context;   
  3. import android.content.res.TypedArray;   
  4. import android.graphics.Canvas;   
  5. import android.graphics.Color;   
  6. import android.graphics.Paint;   
  7. import android.graphics.Paint.Style;   
  8. import android.util.AttributeSet;   
  9. import android.view.View;   
  10. /**  
  11.  * 这个是自定义的TextView.  
  12.  * 至少需要重载构造方法和onDraw方法  
  13.  * 对于自定义的View如果没有自己独特的属性,可以直接在xml文件中使用就可以了  
  14.  * 如果含有自己独特的属性,那么就需要在构造函数中获取属性文件attrs.xml中自定义属性的名称  
  15.  * 并根据需要设定默认值,放在在xml文件中没有定义。  
  16.  * 如果使用自定义属性,那么在应用xml文件中需要加上新的schemas,  
  17.  * 比如这里是xmlns:my="http://schemas.android.com/apk/res/demo.view.my"  
  18.  * 其中xmlns后的“my”是自定义的属性的前缀,res后的是我们自定义View所在的包  
  19.  * @author Administrator  
  20.  *  
  21.  */  
  22. public class MyView extends View {   
  23.        
  24.     Paint mPaint; //画笔,包含了画几何图形、文本等的样式和颜色信息   
  25.     public MyView(Context context) {   
  26.         super(context);   
  27.            
  28.     }   
  29.        
  30.     public MyView(Context context, AttributeSet attrs){   
  31.         super(context, attrs);   
  32.         mPaint = new Paint();   
  33.         //TypedArray是一个用来存放由context.obtainStyledAttributes获得的属性的数组   
  34.         //在使用完成后,一定要调用recycle方法   
  35.         //属性的名称是styleable中的名称+“_”+属性名称   
  36.         TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);   
  37.         int textColor = array.getColor(R.styleable.MyView_textColor, 0XFF00FF00); //提供默认值,放置未指定   
  38.         float textSize = array.getDimension(R.styleable.MyView_textSize, 36);   
  39.         mPaint.setColor(textColor);   
  40.         mPaint.setTextSize(textSize);   
  41.            
  42.         array.recycle(); //一定要调用,否则这次的设定会对下次的使用造成影响   
  43.     }   
  44.        
  45.     public void onDraw(Canvas canvas){   
  46.         super.onDraw(canvas);   
  47.         //Canvas中含有很多画图的接口,利用这些接口,我们可以画出我们想要的图形   
  48.         //mPaint = new Paint();   
  49.         //mPaint.setColor(Color.RED);   
  50.         mPaint.setStyle(Style.FILL); //设置填充   
  51.         canvas.drawRect(1010100100, mPaint); //绘制矩形   
  52.            
  53.         mPaint.setColor(Color.BLUE);   
  54.         canvas.drawText("我是被画出来的"10120, mPaint);   
  55.     }   
  56. }  

 

相应的属性文件:

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <declare-styleable name="MyView">  
  4.         <attr name="textColor" format="color"/>  
  5.         <attr name="textSize" format="dimension"/>  
  6.     </declare-styleable>  
  7. </resources>  

 

在布局文件中的使用:

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.               xmlns:my="http://schemas.android.com/apk/res/demo.view.my"    
  4.     android:orientation="vertical"  
  5.     android:layout_width="fill_parent"  
  6.     android:layout_height="fill_parent"  
  7.     >  
  8.        
  9.     <demo.view.my.MyView  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content"    
  12.         my:textColor="#FFFFFFFF"    
  13.         my:textSize="22dp"  
  14.         />  
  15. </LinearLayout> 


from:http://www.cnblogs.com/hxxy2003/archive/2011/08/05/2129050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值