android demo之ApiDemos下的text

本文详细介绍了Android中TextView的各种属性和使用技巧,包括链接显示、文本样式调整、自动链接功能及缩略处理等。同时,深入探讨了不同单位如dp、sp在不同分辨率屏幕上的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了android的demo下的一个小部分,主要是写的TextView的。程序虽然短,但我的java基础太差,也只看懂了个大概。下面对不懂的地方作个笔记。

1、xmlns:android="http://schemas.android.com/apk/res/android"每次都写组件的时候都能看见这个。网上查了下好像是:xmlns是定义一个命名空间,如果需要使用符合 XML 规范的 XHTML 文档,则应该在文档中的<html> 标签中至少使用一个 xmlns 属性,以指定整个文档所使用的主要命名空间,而android的xml解析就是遵循了此规则。有了它,你就可以alt+/作为提示,提示你输入什么,不该输入什么,什么是对的,什么是错的,也可以理解为语法文件。或者语法判断器什么的。

2、android:autoLink="all",这个设置像电话号码,email地址的文字显示为可链接的。可以设置为可以用|来选择多项

none 0x00 Match no patterns (default).
web 0x01 Match Web URLs.
email 0x02 Match email addresses.
phone 0x04 Match phone numbers.
map 0x08 Match map addresses.
all 0x0f Match all patterns (equivalent to web|email|phone|map).

3、<b>text1:</b>表示加粗的意思

4、<a href="http://www.google.com">link</a>表示用link代替了http://www.google.com"外部连结。

5、setMovementMethod(LinkMovementMethod.getInstance()),代码上说要加上这一句让链接可用。

6、SpannableString有很好的博客可作为参照http://blog.youkuaiyun.com/rockcoding/article/details/7231756

public void setSpan (Object what, int start, int end, int flags)
主要是start跟end
start是起始位置,无论中英文,都算一个。从0开始计算起。end是结束位置,所以处理的文字,包含开始位置,但不包含结束位置。

7、dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

  px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

  pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

  sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

  dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换.

8、

android:ellipsize = "end"    省略号在结尾

android:ellipsize = "start"   省略号在开头

android:ellipsize = "middle"     省略号在中间

android:ellipsize = "marquee"  跑马灯

最好加一个约束android:singleline = "true"

 android:marqueeRepeatLimit="1"跑马灯的次数为1

android:marqueeRepeatLimit="marquee_forever"次数为无限次

android:focusableInTouchMode="true"我加上这句才显示跑马灯效果。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值