您的位置:首页 > 移动开发 > Android开发

Android开发之国际化问题

2012-12-27 11:25 218 查看
这里所谓国际化,指的就是我们开发的应用可以在手机的特定的语言环境下显示特定的语言,比如在中文环境下,软件里面所有的文字为中文,在英文环境下,软件中所有的文字都为中文,我们是如何来实现这样的功能的呢?

其实很简单,只要在res文件夹建相应的value文件夹即可,下面以一个简单的例子来说明。
我们要实现的效果就是在中文环境下显示如下界面




图 1
英文环境下显示如下界面



图 2

界面包括一个TextView和一个ImageButton
   
<TextView  
   
android:layout_width="fill_parent" 
   
android:layout_height="wrap_content" 
   
android:text="@string/hello"
   
/>
   
<ImageButton  
   
android:layout_width="wrap_content" 
   
android:layout_height="wrap_content" 
   
android:src="@drawable/exit"
   
/>

仔细观察可以发现,其实上面两个界面变的都只是文字和ImageButton上的图片而已,其他的完全没有变化,我们有必要将其中的文字抽取出来,放到res/values文件夹下面,如果要实现中文环境下对应的界面,需要在res文件及下建立一个"values_zh"文件夹,如果要实现在英文环境下实现对应的界面,需要在res文件夹下建立一个"values_en"文件夹,然后分别在两个文件及中建一个"string.xml"文件,这俩个xml文件除了文本节点(显示在界面上面的内容)不一致外,其他必须一致,比如

<?xml version="1.0"
encoding="utf-8"?>
<resources>
   
<string
name="hello">您好,俞超!</string>
   
<string
name="app_name">超人</string>
</resources>


<?xml version="1.0"
encoding="utf-8"?>
<resources>
   
<string name="hello">Hello
yuchao!</string>
   
<string
name="app_name">super_man</string>
</resources>
这样,一个简单的国际化应用就做成了
然后,上面的图片在相应的语言环境下又是如何实现的呢?

原理和文字一致,只要分别建立对应的drawable文件夹,比如中文环境"drawable_zh",英文环境"drawable_en",准备两张图片,名字相同,分别放入两个文件夹,这样,应用运行的时候就会根据手机的语言环境来引用相应文件夹下的图片了

最后,我们还可以实现应用可以适应屏幕分辨率的效果,当然,这需要建立相似的布局文件夹,命名规则为

“layout-f1xf2”其中f1的值必须大于f2,比如“layout-320x240”,“layout-480x320”,然后文件夹下所有的xml文件必须同名,这样就能实现应用的界面布局可以随着分辨率的变化而变化了。

补充一点,如果在某一语言环境下没有对应的方言文件夹,那么Android将使用默认的不带后缀的文件夹(layout,drawable,values)等,值得注意的是,必须要指明默认的文件夹,否则在陌生的语言环境下,Android将无法选择合适的处理方式!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: