实现的方式也很简单,直接调用Android开放的接口Resources.updateConfiguration: public static void changeSystemLanguage(...(); Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration...config, res.getDisplayMetrics()); return res; } config.setToDefaults会将Locale的值设为null,而再调用updateConfiguration...回到这个面试题,现在你知道了可以在应用内切换语言(当然也可以修改Configuration的其他值),那么你有没有想过,如果不知道这个updateConfiguration的存在,你会怎么实现这个需求呢...或者说没有人和你说过updateConfiguration,你能找到它吗?
super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration...= res.getConfiguration(); config.fontScale = getFontScale();// 获取当前用户设置的文字增缩比例 res.updateConfiguration
Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration...我实际受不了有2处划线的地方,也就是说上面代码中有2处被废弃了(没错,API 25被废弃的): config.locale = locale; getBaseContext().getResources().updateConfiguration...android.content.Context#createConfigurationContext(Configuration)}. */ @Deprecated public void updateConfiguration...(Configuration config, DisplayMetrics metrics) { updateConfiguration(config, metrics, null);
= 1.0f) { config.fontScale = 1.0f; res.updateConfiguration(config, res.getDisplayMetrics...== 1.0f) { config.fontScale = 1.0f res.updateConfiguration(config, res.displayMetrics
Configuration config = resources.getConfiguration(); config.locale = Locale.getDefault() resources.updateConfiguration...Configuration配置来进行APP语言切换,但是 在API 25以后推荐我们使用,Context.createConfigurationContext(Configuration),Resources.updateConfiguration...// apply locale configuration.setLocale(locale); } else { // updateConfiguration...configuration.locale = locale; DisplayMetrics dm = resources.getDisplayMetrics(); resources.updateConfiguration
= null) { mCompatibilityInfo = compatInfo; } updateConfiguration(config, metrics); assets.ensureStringBlocks...(); } 最后进入到updateConfiguration(Configuration config, DisplayMetrics metrics, CompatibilityInfo compat...Build.VERSION.RESOURCES_SDK_INT); mConfiguration指向的是一个Configuration对象,用来描述设备当前的配置信息 Resources类的成员函数updateConfiguration...updateConfiguration执行完后就调用到assets.ensureStringBlocks() /*package*/ final void ensureStringBlocks() {
通过 @ohos.application.abilityManager 能力,对Ability状态进行修改:其中AbilityManager.updateConfiguration()通过修改colorMode...3)定义全局变量@storagelink('theme')4)定义事件修改变量theme的值,如果是系统主题(dark,light),调用AbilityManager.updateConfiguration
(); Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration
super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration
configuration = resources.getConfiguration(); configuration.fontScale = fontScale; resources.updateConfiguration...configuration = resources.getConfiguration(); configuration.fontScale = fontScale; resources.updateConfiguration
super.getResources(); Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration
).getConfiguration();// 获取系统的配置 configuration.locale = Locale.CHINA; getResources().updateConfiguration
case 1: configuration.setLocale(Locale.ENGLISH); break; } getResources().updateConfiguration
dm = getResources() .getDisplayMetrics(); config.locale = Locale.SIMPLIFIED_CHINESE; getResources().updateConfiguration
super.getResources(); Configuration conf = new Configuration(); conf.setToDefaults(); res.updateConfiguration
config = res.getConfiguration(); config.fontScale = getTextScale();//1 设置正常字体大小的倍数 res.updateConfiguration
Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration...Configuration(); //将配置项设置为系统默认值 config.setToDefaults(); //保存更改后的配置项 res.updateConfiguration
来减少频繁访问 AssetManager ,所以需要去释放这个资源池,否则取到的都是缓存 clearPreloadTypedArrayIssue(resources); // 最后调用 updateConfiguration...方法来确保资源更新了 resources.updateConfiguration(resources.getConfiguration(), resources.getDisplayMetrics
AppApplication.getInstance() .getBaseContext() .getResources() .updateConfiguration
config.locale = Locale.JAPAN; }else { config.locale = Locale.CHINESE; } } mContext.getResources().updateConfiguration
领取专属 10元无门槛券
手把手带您无忧上云