TextView 实战之你真的懂我么?

641 查看

j1Knx9T

不要以为别人是赢在了起跑线上,他们其实生在了终点。

写在前面的话

对于TextView,我想大家都已经熟的不能再熟了。但是它的用法我们真的熟么?为了避免总是一言不合就去翻官方文档,在这里我总结一下我也可能是你容易忽视的一些细节.

TextView设置基础

字符串资源里变量替换

Android开发中是拒绝硬编码的,我们可能会把一些字符串放在xml中当作资源使用,假设有如下情况:

我们在程序中需要使用这个字符串,但是A是一个变量,很常规的办法是取出这个字符串,然后用String的replace方法把A替换成用户的昵称。

其实,在android中有这样一个东西,那就是 XLIFF,全称叫 XML 本地化数据交换格式,英文全称 XML Localization Interchange File Format。

用法也是很简单的,如

程序中只要给变量赋值就可以了,如

把字符串打印出来如下

0Aho7n7

这里的1代表第一个变量,多个变量的话依次递增即可。

TextView xml文件可配置的属性

TextView中设置多种字体大小

比如在项目中经常遇到如下UI,

TmmIXah

像这样的两种字体大小放到一个TextView中,我们应该如何处理呢?需要用到 android.text 命名空间下的一些与 spannable相关的类和接口。如下:

这个经过转化过的textSpan就是我们需要的。

TextView中设置超链接

这个比较简单,设置我们上边提到的android:autoLink属性,默认为none。该属性的几个常量如下:

2qx3b5t

代码中的设置方式:setAutoLinkMask(int)。

参数和上边列表对应,分别为:Linkify.WEB_URLS,Linkify.EMAIL_ADDRESSES,Linkify.PHONE_NUMBERS,Linkify.MAP_ADDRESSES,Linkify.ALL

但是需要注意的是,当我们需要定制超链接的跳转时应该怎么做?答案是还是选择Spannable。代码如下: