`
isiqi
  • 浏览: 16041274 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android应用资源---本地化(Localization)(一)

 
阅读更多

Android会运行在许多地区的许多设备上。为满足大多数用户的需要,应用程序应该使用与应用所在地区相适应的文本、音频文件、数字、货币符号、以及图形等。

本文档介绍Android应用程序本地化的最佳实践。这个原则适用于你正在使用的任何IDE开发工具,如带有ADTEclipse、基于Ant的工具等。

首先要掌握Java的编程知识,并且熟悉Android的资源加载过程,以及XML中用户界面元素的声明方法。在开发方面要掌握Activity的生存周期以及国际化和本地化的一般原则。

使用Android资源框架把应用程序本地化的外观尽可能的与核心Java功能分离,是一个良好的实践。

1.可以把大多数或所有的应用程序的用户界面的内容放到资源文件中;

2.用户界面的行为,以及其他处理,是通过Java代码来驱动的。如,如果用户输入的数据需要依赖不同的地区来格式化或排序,那么就要使用Java代码来编程处理这些数据。

概要:Android中的资源切换

资源是文本字符串、布局、声音、图形以及Android应用程序中需要的其他静态数据。一个应用程序能够包含多个资源集,每个都是针对不同的设备配置来定制的。当用户运行应用程序时,Android会自动的选择并加载跟设备最匹配的资源。

当编写应用程序时,需要创建一组默认的资源,外加用于不同地区的可选资源。

当用户运行应用程序时,Android系统会基于地区来选择加载合适的资源。

在编写应用程序时,要给应用程序创建默认和可选资源。对于这些创建的资源,要把它们放到res/目录下,特定命名的子目录中的文件中。

为什么默认资源是重要的?

当应用程序运行在一个没有提供特定语言文本的语言环境中时,Android会从res/values/strings.xml中加载默认的字符串。如果默认的文件不存在,或者是缺少应用程序需要的字符串,那么应用程序就不会运行,并且会显示一个错误。下面的示例演示了当默认文本文件不完整时所发生的问题:

应用程序的Java代码只引用了两个字符串,text_atext_b。这个应用程序包含了用英语定义的text_atext_b的本地资源文件(res/values-en/strings.xml)。应用程序还包含了一个默认的资源文件(res/values/strings.xml),文件中包含了text_a的定义,但没有定义text_b

1.应用程序编译时可能不会有问题。像Eclipse这样的IDE,如果资源有错误,它是不会报告任何错误的。

2. 当应用程序在设置了英语语言环境的设备上启动时,应用程序能够正确运行,因为res/values-en/strings.xml中包含了它所需要的文本字符串。

3.但是,当应用程序在设置了英语以外的其他语言环境的设备上启动这个应用程序时,用户会看到一个错误信息和强制关闭按钮。

要防止这种情况发生,必须确保res/values/strings.xml文件存在,并且定义了每个需要字符串。这适用于所有类型的资源,不只是字符串。你要给应用程序需要的所有类型的资源创建默认资源文件,包括布局资源、可描画资源、动画资源等。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics