Android 语言切换

Android 语言切换

一般用 语言_地区的形式表示一种语言,如  zh_CN, zh_TW.

各国语言缩写: http://www.loc.gov/standards/iso639-2/php/code_list.php

国家和地区简写: http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

用eclipse工具建多语言文件夹:  http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html

切换语言主要分为两类:

1、根据系统当前语言环境自动选择程序加载语言,若不存在对应语言的strings文件,则加载默认语言文件

此方法不需要其他代码设

2、程序内部自主选择程序使用语言,需要由代码控制

在OnCreate函数中调用

public void SwitchLanguage(Locale locale){
         Resources resources = getResources();// 获得resource资源对象
         Configuration config = resources.getConfiguration();// 获得Configuration设置对象
         DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
         config.locale = locale; // 简体中文
         resources.updateConfiguration(config, dm);
//       startActivity(new Intent(Sudoku.this, Sudoku.class)); // 重启当前的Activity才能生效!(死循环)
		
	}

AndroidManifest.xml

每一个Activity中都要加: android:configChanges="locale"。(每一个未检测)

添加权限: <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

另外:

</application>

<supports-screens

       android:smallScreens="true"

       android:normalScreens="true"

       android:largeScreens="true"

       android:anyDensity="true"/>

 <supports-screens>是为了解决如下问题:

http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值