Android应用语言切换功能-创新互联

因为公司的产品大部分是销售到国外的,所以领导要求app有语言切换功能。我在网上搜了些相关知识并实现了功能,在这里做个中英文切换的demo记录下来。

成都创新互联公司专注于安岳企业网站建设,响应式网站,商城网站开发。安岳网站建设公司,为安岳等地区提供建站服务。全流程按需定制制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

先看看demo的效果:

Android应用语言切换功能

效果就是这样子。当然也可以做成其他语言的切换,具体根据需求而定。

原理其实很简单,就是多个strings.xml进行切换然后在刷新Activity。

首先,在AndroidManifest.xml文件中的每个需要切换语言的Activity中加入android:configChanges="locale"。

然后在res文件夹下添加对应语种的values文件:

比如中文简体就是values-zh-rCN、英文就是values-en。

当然还有其他语种的,这里我只做了两个常用的有需要的可以去查看各国语言缩写、各国语言简称。其原理都是一样的。

values-zh-rCN/strings.xml:


    LanguageDemo

    中文
    英文
    红色
    ×××
    蓝色
    绿色
    紫色

values-en/strings.xml:


    LanguageDemo

    Chinese
    English
    Red
    Orange
    Blue
    Green
    Purple

布局文件:




    

最后是切换语言的核心代码:

private Configuration configuration;
private DisplayMetrics displayMetrics;
private Resources resources;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    resources = getResources();// 获得res资源对象
    configuration = resources.getConfiguration();// 获得设置对象
    displayMetrics = resources.getDisplayMetrics();
}

//中文
public void Chinese(View view) {
    configuration.locale = Locale.SIMPLIFIED_CHINESE;
    resources.updateConfiguration(configuration, displayMetrics);
    startActivity(new Intent(MainActivity.this,MainActivity.class));
    finish();
}

//英文
public void English(View view) {
    configuration.locale = Locale.US;
    resources.updateConfiguration(configuration, displayMetrics);
    startActivity(new Intent(MainActivity.this,MainActivity.class));
    finish();
}

当然刷新页面也不止这一种方法可以用onCreate(),不过这个方法限制比较多。还有recreate(),使用这个方法屏幕会闪一下。

那么源码地址:http://down.51cto.com/data/2229088

如果你喜欢我的文章就关注我的博客吧!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:Android应用语言切换功能-创新互联
浏览地址:http://hbruida.cn/article/dhsiih.html