项目中需要增加多语言切换功能,这在安卓下很好实现,如英语增加一个资源文件夹values-en,添加英文strings配置文件就可以了,那么要想切换语言时APP内的图片也自动切换成英文怎么办呢?也会简单,增加一个drawable-en-xhdpi文件夹,把对应的英文图片资源放到该文件夹下面就行了,具体切换方法如下:
/**
* 切换语言
* @param lang
*/
protected void switchLanguage(String lang){
Resources resources = getResources();// 获得res资源对象
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
if(lang.equals("en")){
config.locale = Locale.ENGLISH;
}else{
config.locale = Locale.SIMPLIFIED_CHINESE;
}
Utils.showToast(context, "已切换到"+lang);
resources.updateConfiguration(config, dm);
app.setProperty("language", lang);
}
切换语言后要重新启动activity才会生效,我的做法是跳转到启动activity,但是实际切换中遇到一个问题,APP内文本已经显示为英文,但是图片还是显示的是中文,解决方法:
重启App(一定要杀死进程):
Intent intent = new Intent(this,
StartActivity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
ExitManager.getInstance().exit();
// 杀死该应用进程
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);