Android的语言切换
本文介绍的是使用Configuration进行App的语言切换。
什么是Configuration
android提供了一个Configuration类,主要用来描述与能让应用程序获取的资源相关的所有硬件配置信息。包含用户指定的信息项(本地和缩放比例)和动态硬件配置(一系列的输入设备)。
Configuration 类中包含了很多种信息,例如系统字体大小,orientation,输入设备类型等等.
fontScale
– 来源于system.prop中 sys.font.scale配置项
输入设备类型配置:系统加入的任何输入device必须拥有输入属性:现在android中仅支持touchscreen(触摸),keyboard(键盘),navigation(滚动球)orientation
– 屏幕方位
keyboardHidden
– 如果是划盖或开盖手机并且没有软键盘支持,这个设成true
- hardKeyboardHidden
– 如果是划盖或开盖手机,这个设成true
- locale
– 用户选择的location信息
- theme
– 皮肤,资源等等
什么是locale
Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的 操作,它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
设置Configuration的locale属性改变语言
//获取资源目录
Resources resources = getResources();
//获取资源目录中的配置信息
Configuration config = resources.getConfiguration();
//获取系统显示区域信息
DisplayMetrics dm = resources.getDisplayMetrics();
//配置local信息
config.locale = locale;
//更新资源目录的配置信息
resources.updateConfiguration(config, dm);