安豆计算器 第6节 优化资源使用

第6节 优化资源使用

字符串、颜色以及各种尺寸相关的值都属于程序的资源。
我们前面都是直接使用的这些资源,例如,

其实这些资源可以分门别类的放到单独的位置定义,然后通过@引用的方式进行使用。

6.1 优化颜色

颜色的定义和使用,

  1. 颜色应该定义到res\values\colors.xml当中,

  2. 在需要使用它的地方采用引用的方式,@color/

6.2 优化尺寸

尺寸的定义和使用,

  1. 尺寸应该定义到res\values\dimens.xml当中,

  2. 在需要使用它的地方采用引用的方式,@dimen/

6.3 优化字符串

字符串的定义和使用,字符串应该定义到res\values\strings.xml当中,

6.3.1 xml使用字符串

在布局文件中使用字符串,应该采用引用的方式,@string/

6.3.2 代码使用字符串

在代码中使用字符串,应该采用如下方式,

其中context是一个应用到上下文环境。对一个Activity来说,就是Activity自身MainActivity.this

将代码中所有使用资源的地方,都按照前面介绍的方式进行改造。以后在修改代码的时候,就不会牵一发而动全身了,只需要修改一处,就能够把所有需要修改的地方都修改到了。

6.3.3 多国语言支持

安卓系统,支持多国语言,现在我们将添加对中文支持。

  1. res目录下,点击右键,启动创建android resource的向导;

  2. File name栏,输入strings.xml,再选中下方的locale,添加到右边;

  3. 选中zh,代表中文;

  4. 在创建出来的中文的res\values-zh\strings.xml文件中,仿照res\values\strings.xml的内容,添加中文语言;

这里的app_name,在AndroidManifest.xml文件中被使用,里面使用了android:label属性,指定这个应用的名称。

至此,中文语言的支持,添加完成。在设备上运行程序后,会看到现在“计算器”应用到名称已经变成中文的计算器了。

6.4 style优化

已经定义的Style中,有很多相同的部分,可以将它们提取出来共同使用。
style可以继承自另一个style,

  1. 将共同使用的部分定义到BaseBtnStyle当中,

  2. 各种风格的Button继承BaseBtnStyle,使用parent=关键字;然后再加入不同的元素,

现在资源使用方式的优化就完成了。