微信中可以动态设置,apk的语言版本,最近尝试实现了这个功能。
我们知道,android本身就支持多国语言版本的。
不过这个语言的切换 依赖于系统的的语言设置,见图
也依赖apk本身values多国语言的资源配置,en代表英文,zh代表中文
通常来说,在android系统上实现功能,最好的借助系统提供的api,如果没有明确的api,则想办法曲线救国。
实际上本博客内提供的实现方法,就是一个曲线救国的方式,下面就介绍下他的核心思路。
1.在values中配置相应的 语言资源
2.更改当前系统Configuration的配置信息
3.指定的控件重新加载 语言资源
第一步,大家都会,不多做介绍
第二步,直接上代码
// 刷新显示配置-
public void refreshTheLanguage() {
// 得到SharedPreferences中存储的 语言配置信息
String str = getLanguage();
Resources localResources = this.context.getResources();
// 判断 系统配置设置的 国家语言 是否和 SharedPreferences中存储的 一致
if (!localResources.getConfiguration().locale.getLanguage().equals(str)) {
// 得到系统配置信息类
Configuration localConfiguration = context.getResources()
.getConfiguration();
// 创建Locale类(简单理解为 所在地区 类)
Locale localLocale = new Locale(str);
// 设置默认地区信息
Locale.setDefault(