1想要自己的应用程序被世界上其他的国家应用就必须安卓程序“国际化”,所谓的国际化只是将应用里的语言换为其他国家的,或者其他的view显示相应的国家的内容。
首先在安卓app启动的时候会根据用户手机设置里的语言获取用户是哪个国家,然后调用相应的资源文件。
打个最简单的hello world!程序,在src资源文件下可以在values里找到app的文件名如下:
<string name="app_name">IIn</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string>
这其实是应用程序默认的读取的string.xml文件,若想在英国显示英文,在中国显示:“你好世界!”,可以src下创建另外的一个文件名字叫“values-zh”,并且复制默认values文件里的文件,并且将相应的字符串该为中文的(注意 name不要修改):
<string name="app_name">国际化</string> <string name="hello_world">你好世界!</string> <string name="action_settings">设置</string>
这样如果用户手机语言设置为中文的时候打印出来的就是”你好世界“,一般文件命名是固定的是"values-"加国家的标识,若想知道其他国家的标识我们可以通过打开IE浏览器,在工具、Internet选项、语言里,点击”添加“,就会出现各个国家的名字后面的小写字母就是国家语言的标识,如下图:(values-zh)就表示在中文的时候执行程序读取的资源文件。
2手机屏幕的适配器
同理,可以让相应的图片资源在不同的语言的时候显示不一样,如在英国的语言时候显示英国国旗,中国的语言时候显示中国国旗。其实程序的很多布局文件和图像显示上也采取类似的方式,在分辨率大的手机上布局和分辨率小的手机上程序的布局也可以不一样,也是创建与默认资源文件相同的名字+特别的标识,如drawable文件就有好多默认种类,如hdpi(高分辨率),ldpi(低分辨率)等等。其实就是在不同的情况下activity调用的资源不同,但是里面的资源的名字一样。为了程序不出错,所有的资源文件都应该设置一个默认的资源文件。