第十八章 应用本地化
这一章感觉内容不是很多,就是讲了几个很简单的概念。
有关默认资源
默认资源就是目录没有任何后缀的的资源,如果没有指定其它备选资源,安卓就会默认使用它。当你所要求的某个本地化资源缺失时也会使用默认资源,所以当默认资源缺失时,少则引发显示异常,多则导致程序崩溃。
有关本地化资源
本地化资源就是新建一个与你想要本地化的资源文件名称相同的文件,只不过其需要加上修饰符,例如移动国家码、语言代码、布局方向等等。修饰符是在定义这个文件时选择的。
有关可用资源优先级判定
Android会基于一个优先级顺序(可带配置修饰符的设备配置特征)来确定优先使用那个资源文件,优先顺序如下:
1 | 移动国家码,通常附有移动网络码 | 10 | UI模式 |
2 | 语言代码,通常附有地区代码 | 11 | 夜间模式 |
3 | 布局方向 | 12 | 屏幕显示密度 |
4 | 最小宽度 | 13 | 触摸屏类型 |
5 | 可用宽度 | 14 | 键盘可用性 |
6 | 可用高度 | 15 | 首选输入法 |
7 | 屏幕尺寸 | 16 | 导航键可用性 |
8 | 屏幕纵横比 | 17 | 非文本导航方法 |
9 | 屏幕方位 | 18 | API级别 |
在寻找最匹配的资源时,遵循以下几个顺序:
1.排除不兼容的目录
2.按优先级表排除不兼容的目录
如果遇到多重配置修饰符,其各个修饰符在目录中按照优先级顺序排列,否则目录名无效(在新建文件时,工具会自动配置为正确的顺序)。
有关挑战练习 日期本地化
这一题我发现我已经不知道什么时候就实现了,翻看前面的挑战练习,我发现在第九章的挑战练习中,要求时用android.text.format.DateFormat来实现,我用的却是SimpleDateFormat。这两个一个是Java的基础类,一个是安卓特有的类,于是我将这里改成要求的DateFormat之后,发现已经就可以实现随着Local的更改而对应调整日期的语言了(SimpleDateFormat只会显示中文),所以这题就这样不攻而破了。。
附上android.text.format.DateFormat的使用介绍。