安卓多语言切换-显示英文图片



    项目中需要增加多语言切换功能,这在安卓下很好实现,如英语增加一个资源文件夹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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值