安卓语言适配
来源:互联网 发布:怎么看淘宝关注的人 编辑:程序博客网 时间:2024/05/17 23:37
最近接触到了语言适配的需求,所以分享个简单的demo介绍一下流程
demo示意:
流程:
1.新建不同的values文件夹,不同的语言使用不同values中的strings.xml
具体语言分类文末会附带
2.新建BaseActivity,所有涉及语言适配的Activity继承此基类(其他类型界面同理)
public class BaseActivity extends AppCompatActivity{ @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public void changeAppLanguage(String tag){ Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); switch (tag) { case "简体中文": conf.setLocale(Locale.CHINA); break; //开启日本的语音 case "日本语": conf.setLocale(Locale.JAPAN); break; case "English": conf.setLocale(Locale.US); break; case "繁體中文": conf.setLocale(Locale.TAIWAN); break; } res.updateConfiguration(conf, dm); }
MainActivity中:
点击切换语言按钮,显示选择语言弹框:
/** * 切换语言 */public void languageDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.title).setItems(this.getResources().getStringArray(R.array.language), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String name = MainActivity.this.getResources().getStringArray(R.array.language)[which]; MainActivity.super.changeAppLanguage(name); recreate(); } }); AlertDialog alertDialog = builder.create(); alertDialog.show(); alertDialog.getWindow().setGravity(Gravity.CENTER);}
可以看到,选择某种语言后,调用BaseActivity的changeAppLanguage()方法,改变系统语言,然后调用recreate()方法重建MainActivity,达到了切换语言的效果
Demo下载链接
附:一些国家的Values文件名
中文(中国):values-zh-rCN中文(香港):values-zh-rHK
中文(台湾):values-zh-rTW
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
- 安卓语言适配
- 安卓语言学习网站
- 安卓内置语言切换
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓动态适配
- 安卓---屏幕适配
- 安卓页面适配
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓屏幕适配
- 安卓界面适配
- AIDL(安卓接口定义语言)
- 关于安卓中的语言国际化问题
- 安卓应用内切换语言
- spring学习-------简介
- 【剑指offer】面试题54:二叉搜索树的第k大节点
- CSS3 Transform变形理解与应用
- MQ 模型
- 【转】最流行的7个JavaScript框架特点
- 安卓语言适配
- Spring学习之路 第一个Spring演示实例
- Struts2(五)常用标签之数据标签
- Linux服务器记录并查询历史操作记录
- Tensorflow小样例-神经网络
- 最短路 最短路径 floryd
- IDEA运行下载的Servlet时报错 Error running Tomcat 8.5.8: Unable to open debugger port (127.0.0.1:49551):
- 1008. 数组元素循环右移问题 (20)
- 项目总结| 学生信息管理系统