Android(安卓)中英文切换工具类
16lz
2021-01-26
public class ChangeLanguageHelper { public static final int LANGUAGE_CHINA = 1; public static final int LANGUAGE_ENGLISH = 2; public static final int LANGUAGE_DEFAULT = 0; private static Context mContext = null; private static String country = null; private static String mLanguage = ""; private static Resources mResources; private static Locale mDefaultLocale; public static void init(Context context) { mResources = context.getResources(); country = context.getResources().getConfiguration().locale.getCountry(); mContext = context.getApplicationContext(); int appLanguage = Configure.getAppLanguage(); changeLanguage(appLanguage); } /** * 获取当前字符串资源的内容 */ public static String getStringById(int id) { String string; if (mLanguage != null && !"".equals(mLanguage)) { string = mResources.getString(id, mLanguage); } else { string = mResources.getString(id, ""); } if (string != null && string.length() > 0) { return string; } return ""; } public static void changeLanguage(int language) { boolean isChangeLanguage = false; if (language != Configure.getAppLanguage()) { isChangeLanguage = true; } Configuration config = mResources.getConfiguration(); // 获得设置对象 DisplayMetrics dm = mResources.getDisplayMetrics(); // 获得屏幕参数:主要是分辨率,像素等。 switch (language) { case LANGUAGE_CHINA: config.locale = Locale.SIMPLIFIED_CHINESE; // 中文 config.setLayoutDirection(Locale.SIMPLIFIED_CHINESE); mLanguage = "zh-CN"; country = "CN"; Configure.setAppLanguage(LANGUAGE_CHINA); break; case LANGUAGE_ENGLISH: config.locale = Locale.ENGLISH; // 英文 config.setLayoutDirection(Locale.ENGLISH); mLanguage = "en"; country = "US"; Configure.setAppLanguage(LANGUAGE_ENGLISH); break; case LANGUAGE_DEFAULT: country = Locale.getDefault().getCountry(); if ("US".equals(country) || "GB".equals(country)) { mDefaultLocale = Locale.ENGLISH; } else { mDefaultLocale = Locale.SIMPLIFIED_CHINESE; } config.locale = mDefaultLocale; // 系统默认语言 config.setLayoutDirection(mDefaultLocale); Configure.setAppLanguage(LANGUAGE_DEFAULT); break; } mResources.updateConfiguration(config, dm); if (isChangeLanguage) { EventBus.getDefault().post(new AppEvent.ChangeLanguage()); } } public static boolean getDefaultLanguage() { return ("CN".equals(country)); }}
更多相关文章
- instrumentation
- Volley框架网络访问String,JsonObject,JsonArray
- android text 中英文混排 换行的问题
- android driver开发常见的英文缩写
- android 从Assets中读取中文文本
- Android(安卓)权限中文描述大全
- 黑马程序员.Android攻城狮.JAVA基础.1.6.String类
- Android向服务器上传中文乱码解决
- Android(安卓)与 .net 互通的RSA加密