TextView是安卓里面用的最多的控件,有木有?
但是我们真的就非常了解它吗?不一定哦,各位看官请看下面一个个属性的分析
1. android:autoLink 这个属性有4个值得讲的可选值 web/phone/email/map,当TextView的字符串满足相应的条件的时候,它就会变成一个链接形式。那各个参数都需要满足什么条件呢?
a. web 网站形式,如: www.baidu.com b. phone 电话形式 如:13480714652
d. map 地图形式,如:1912 Avenue K Plano,Texas 75074 (中文意思是: 美国德克萨斯州普莱诺市K大道1912号 邮编75074) 注意,目前安卓只支持美国的地址自动转化为超链接,其他地方不行。比如中国北京天安门
2. android:drawableLeft 这个属性可以在文本的左边显示一张图片,个人感觉可以用来做登陆的时候,在密码两个字前面放个 锁的图标。当然还有其他一些用。
类似的,还有android:drawableTop在文本上面设置一张图片;android:drawableRight在文本右边设置一张图片,android:drawableBottom在文本下面显示一张图片
3. android:ellipsize="marquee" 走马灯效果。
不过因为Android的缺省行为是在控件获得焦点之后才会显示走马灯效果,所以,有两个属性必须设置,就是
android:focusable="true"
android:focusableInTouchMode="true"
所以,完整的走马灯效果代码应该是
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true" //单行显示,多行无所谓走马灯了
android:marqueeRepeatLimit="marquee_forever" //设置循环次数,这是无数次
android:ellipsize="marquee" //走马灯
android:focusable="true" //表示View能否获取到焦点,默认用户不能移动焦点是一个View上面。
android:focusableInTouchMode="true" //控制View在触摸模式下可以获取到焦点。
android:text="@string/marquee"
/>
那类似的,
android:ellipsize="start" 表示如果字符串过长,省略号在开头
android:ellipsize="middle" 字符串过长,省略号在中间
android:ellipsize="end" 字符串过长,省略号在尾部
4. android:gravity表示TextView里面字符串的位置,left表示居左。
5. android:padding和android:layout_margin
这个地方是个比较模糊的概念,
padding表示的TextView内部,内部文本和边框的距离
layout_margin表示TextView这个控件和父视图的距离
一言以蔽之:安卓里面凡是带了layout开头的属性都是和父控件有关的属性,而没有带layout开头的属性,就单单是指这个控件本身的属性。
下面画了个图来表示这种关系,不知道大家能不能看到。。
6. android:ems 用来限制TextView的宽度,比如android:ems="1"表示,这个TextView只有一个中文字符宽,如果字符串过长,则纵向显示。
7. android:lines="4" TextView显示4行,即使没有那么多字符也要占这么多行。 但是如果字符串过多,后面的字符就不能显示。
8. android:lineSpacingExtra="20dip" 设置行间距,比如你的TextView有多行的时候,每行之间的距离。
9. android:shadowColor 设置阴影颜色,android:shadowRadius设置阴影半径
如:
android:shadowRadius="3.0"
android:shadowColor="@color/red"
这样我们的字符串就会有一个红色的阴影,很好看哦~~~
大体写这么多。。
抛砖引玉,仅当参考~