4000 安卓开发 切换应用语言和获取系统语言
2016-06-14 16:58
489 查看
api中提供了locale 类,实现本地化
Locale类 http://www.android-doc.com/reference/java/util/Locale.html
Configuration类 http://www.android-doc.com/reference/android/content/res/Configuration.html
1.把app干掉,然后重新启动,,,进入的时候 用代码设置下,就切换了
例如:
当然没有这么做的了。
2.重新加载边布局:用下面的代码设置完,再调用重新设置(就是把textview重新设置值了)的方法,语言就切换了。
例如:
![](https://img-blog.csdn.net/20160616090907310)
![](https://img-blog.csdn.net/20160616091118251)
把相对应的strings.xml做好翻译就ok了,
每一个Activity中都要加:
在系统设置(手机系统设置不是自己写的设置)中切换语言他会重启~
并且会调用Activity重写的onConfigurationChanged函数
但是有一种情况不会调用onConfigurationChanged函数:
原因是,4.2增加了一个layoutDirection属性,当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启。当在android:configChanges 中同时添加locale和layoutDirection时,才会发生app期望的事情。
demo下载地址:http://download.csdn.net/detail/u013870523/9551033
获取应用语言 方法:getResources().getConfiguration().locale.getLanguage()
推荐
……………………………………………………………………………………………………………………
Android 6.0+ 运行时权限探索
……………………………………………………………………………………………………………………
Android 切换系统语言功能实现
……………………………………………………………………………………………………………………
引用:android:configChanges locale 改语言后,该配置不起作用的原因
……………………………………………………………………………………………………………………
各国语言缩写-各国语言简称,世界各国域名缩写
……………………………………………………………………………………………………………………
有时间最好自己手写写试试,希望能帮到你。
Locale类 http://www.android-doc.com/reference/java/util/Locale.html
Configuration类 http://www.android-doc.com/reference/android/content/res/Configuration.html
思路:
(app中设置语言的的时候,用SharedPreferences保存在本地一份,用来每次进入判断上次设置了什么语言,知道什么语言了,再用下面的代码设置下)1.把app干掉,然后重新启动,,,进入的时候 用代码设置下,就切换了
例如:
System.exit(0);(少用) Intent i = getBaseContext().getPackageManager(). getLaunchIntentForPackage(getBaseContext().getPackageName()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);
当然没有这么做的了。
2.重新加载边布局:用下面的代码设置完,再调用重新设置(就是把textview重新设置值了)的方法,语言就切换了。
例如:
代码
isEnglish:isEnglish true :点击英文 false :点击中文 /** * Locale类 http://www.android-doc.com/reference/java/util/Locale.html * Configuration类 http://www.android-doc.com/reference/android/content/res/Configuration.html */ Configuration config = getResources().getConfiguration(); DisplayMetrics dm = getResources().getDisplayMetrics(); if(isEnglish){ //设置英文 config.locale = Locale.ENGLISH; }else{ //设置中文 config.locale = Locale.SIMPLIFIED_CHINESE; } //更新配置 getResources().updateConfiguration(config, dm);
在工程res文件下添加对应语种的values文件
res:把相对应的strings.xml做好翻译就ok了,
AndroidManifest.xml中:
所需权限<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
每一个Activity中都要加:
android:configChanges="locale"。
在系统设置(手机系统设置不是自己写的设置)中切换语言他会重启~
并且会调用Activity重写的onConfigurationChanged函数
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.e("Mylog","onConfigurationChanged"); }
但是有一种情况不会调用onConfigurationChanged函数:
原因是,4.2增加了一个layoutDirection属性,当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启。当在android:configChanges 中同时添加locale和layoutDirection时,才会发生app期望的事情。
android:configChanges="locale|layoutDirection"
demo下载地址:http://download.csdn.net/detail/u013870523/9551033
获取系统语言
获取系统语言 方法:Locale.getDefault().getLanguage()获取应用语言 方法:getResources().getConfiguration().locale.getLanguage()
推荐
……………………………………………………………………………………………………………………
Android 6.0+ 运行时权限探索
……………………………………………………………………………………………………………………
Android 切换系统语言功能实现
……………………………………………………………………………………………………………………
引用:android:configChanges locale 改语言后,该配置不起作用的原因
……………………………………………………………………………………………………………………
各国语言缩写-各国语言简称,世界各国域名缩写
……………………………………………………………………………………………………………………
有时间最好自己手写写试试,希望能帮到你。
相关文章推荐
- 物联网与移动宽带——未来5G的两大着眼点
- Error:(6, 0) No such property: outputDir for class: org.gradle.api.internal.project.DefaultProject_Decorated
- 【杭电oj】2099 - 整除的尾数(枚举)
- 配置哨兵监控Redis运行情况
- 单线程解析文件,根据文件关键词进行统计,并将结果输出(一)
- PHP中获取类、方法、属性
- iOS 持续集成- 使用xctool实现自动化打包
- Hive动态分区与建表、插入数据操作
- POJ3253 Fence Repair 贪心法 哈夫曼树
- C++ 重载==,使用栈的非递归算法
- 网络并发服务器设计
- leetcode 之Maximum Product Subarray
- 使用递归遍历对象获得value值的实现方法
- 查询MongoDB oplog.rs
- RabbitMQ Exchange 模式 - topic
- Contains Duplicate II
- HTML5表单属性
- tomcat调优
- 社交」到底可怕在哪儿?为什么人们会出现社交焦虑?
- 单一职责原则