语言自适应
在Android工程的res目录下,通过定义特殊的文件夹名称就可以实现,比如我们的程序兼容 简体中文、日文、英文、法文和德文,常规的字符strings.xml保存的目录在values文件夹中,这里我们就需要定义 values-zh-rCN、values-ja、values、values-fr和values-de。当然如果涉及到参数配置类xml文件夹也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。
当然我们用代码如何获取本机的语言类型呢? 通过代码 :
String cwjLocale = getResources().getConfiguration().locale.getCountry(); 即可获取,其中cwjLocale保存了国家代码,这些定义在java.util.Locale的字段中,直接对比即可,比如我们英文版固件设备为US。
当然我们需要测试,可能会强制加载某国语言,可以使用在Activity的SetContentView之前调用,比如强制简体中文,代码如下:
Resources resources = getResources();
Configuration config = resources.getConfiguration();
config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
DisplayMetrics dm = res.getDisplayMetrics();
resources.updateConfiguration(config, dm);
屏幕分辨率自适应
这里我们需要判断两种大体情况,屏幕的方向,比如常规的纵向port和横屏land,我们定义的图片资源为
layout或drawable,而横屏情况下位layout-land和drawable-land,当然还有一种情况就是分辨率。
目前Android手机分辨率有
HVGA (320x480) 的G1、G2、G3 对应标准的 drawable-mdpi
QVGA (240x320) 的G4 ,对应 drawable-ldpi
WVGA (480x800) 的N1,对应 drawable-hdpi 。
最终我们以MMS应用的例子,对应res文件夹的摆放如图: