安卓开发 切换应用语言和获取系统语言
来源:互联网 发布:suse linux 安装软件 编辑:程序博客网 时间:2024/04/29 04:20
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
思路:
(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 改语言后,该配置不起作用的原因
……………………………………………………………………………………………………………………
各国语言缩写-各国语言简称,世界各国域名缩写
……………………………………………………………………………………………………………………
有时间最好自己手写写试试,希望能帮到你。
- 安卓开发 切换应用语言和获取系统语言
- 安卓应用内切换语言
- 安卓国际化,应用内切换语言
- 安卓国际化,应用内切换语言
- 安卓内置语言切换
- android 2种切换语言方式:应用内切换和随系统而切换 代码实现重启应用
- Android切换系统语言,自动更新应用界面显示语言
- Android切换系统语言,自动更新应用界面显示语言
- android 应用在切换系统字体大小和语言时,应用崩溃问题
- Android 系统语言切换监听和设置
- iOS开发之应用内快速切换语言包(不跟随系统语言,不用重启)
- 20岁印度工程师谈HTML5、CSS3开发Android和iOS应用--各语言开发安卓工具
- 应用内切换语言
- Mac语言那些事,切换系统语言和程序语言
- linux系统语言切换
- Matlab2014切换系统语言
- Android 系统语言切换
- 学习安卓开发需要懂得哪些技能和语言
- 省略超出文章部分 超出部分加“…” 展开收起
- Eclipse一闪而过解决最彻底的办法
- strtok函数和strtok_r函数
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 基于JavaMail的Java邮件发送:简单邮件发送
- 安卓开发 切换应用语言和获取系统语言
- Tomcat配置一个ip绑定多个域名
- 单行函数(数值函数)
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- iOS NSDate时间换算
- SparkStreaming向Hbase中写数据
- 去除android或者iOS系统默认的一些样式总结
- UNIX网络编程:I/O复用技术(select、poll、epoll)
- 书写是为了更好的思考