Android应用内多语言切换

在app内有时候需要用户手动切换语言,以适应不同的使用场景,正常来说如果做了语言适配的话,app语言会跟随系统语言进行自动适配。但有时候希望在app内进行语言选择和设置。

设置app的语言环境,直接上代码

    /**
     * 修改APP语言设置
     * @param locale 如Locale.CHINESE、Locale.ENGLISH等
     */
    public void changeAppLanguage(Context context, Locale locale) {
        Resources res = context.getResources();
        DisplayMetrics dm = res.getDisplayMetrics();
        Configuration conf = res.getConfiguration();
        //conf.locale = locale;
        conf.setLocale(locale);
        res.updateConfiguration(conf, dm);
    }


    //设置app语言环境为中文
    changeAppLanguage(context, Locale.CHINESE); 
android应用可以根据语言环境自动适配不同资源目录下的资源,如drawable-zh-xhdpi、drawable-en-xhdpi分别对应中文和英文语言环境的资源。通过上述方法改变语言设置后,app可以自动使用相应的资源目录下的资源文件。

参考:https://www.cnblogs.com/travellife/p/Android-ying-yong-nei-duo-yu-yan-qie-huan.html

 

 

获取app当前的语言环境

    /**
     * 获取当前设置的语言
     * @return 当前的语言,可将结果与Locale.ENGLISH.getLanguage()比较进行判断
     */
    public static String getCurrLanguage(Context context) {
        Locale locale = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            locale = context.getResources().getConfiguration().getLocales().get(0);
        } else {
            locale = context.getResources().getConfiguration().locale;
        }
        return locale.getLanguage();
    }


    //判断当前的语言是否是英文
    Locale.ENGLISH.getLanguage().equals(getCurrLanguage(context));


    String country = locale.getCountry(); //可以借助该方法进行更精细的设置或判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值