Android实现应用内置语言切换功能

一、需求

有时候应用需要在内部切换语言但又不影响系统的语言,比如是应用现在是中文的,系统语言也是中文的,我把应用的切换成英文显示后系统语言还是中文的,系统语言切换后也不会被改变,还有就是有些机的系统是被改造精简过的,比如有些国产机的系统的语言就被精简剩中文和英文。支付宝、微信、Top Story都有在应用内部设置语言切换这样的功能。

Android实现应用内置语言切换功能_第1张图片

二、实现效果

先看看实现效果吧。

三、实现

(一)添加多种语言的资源文件夹及文件

我这默认是英语再添加了个俄文(Google翻译的)和中文。

Android实现应用内置语言切换功能_第2张图片

values/strings.xml

 
  SwitchLanguage 
  Hello World! 
  Eng 
  English 
  中文 
  русский 
  Second Activity 
 

values-ru/strings.xml

 
  Переключение язык 
  привет мир! 
  русский 
  второй активность 
 

values-zh/strings.xml

 
  切换语言 
  你好 世界! 
  中文 
  第二屏 
 

(二)布局文件
activity_main.xml

默认标题栏的文字是切换语言后是不会被改变的,使用Toobar替换掉就可以了。

 
 
   
 
     
 
   
   
  

styles.xml

设置语言后需要重启下activity,启动会有个效果,使用windowDisablePreview屏蔽掉它。