1、字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了,

如,英语环境下的,文件夹命名为:values-en

美国英文环境:values-en-rUS

中文环境为:values-zh

大陆地区中文环境: values-zh-cn

在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建一个默认语言环境的文件夹 : values

当某一个资源没有在语言环境的对应的资源集合中找到时,就会使用 values 下的资源。

若某一个语言环境没有在项目中定义语言环境,那么也会使用 values 下的资源。

2.、图片国际化 

同理。

在 res 下新建 drawable-zh 文件夹,存放中文环境下的图片

新建 drawable-en 作为英语环境下的图片

在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建三个默认语言环境的文件夹:

drawable-hdpi

drawable-ldpi

drawable-mdpi

分别用于存放高、中。低分辨率的图片。Android 系统会根据手机的分辨率,而自动从不同的对应的某一个文件夹下去加载图片。

同样,它们也可以国际化,命名规则如:

drawable-zh-hdpi

drawable-en-ldpi

drawable-en-rUS-mdpi

可能遇到的问题:切换语言后,打开已登录状态的APP时,应用重启

提供两种解决方式:

方法一(治本):

在发生闪退的Activity中添加:

private boolean languageChange = false;private static String lastLanguage="CN";private String nowLanguange="";@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);Log.e("123", "MainActivity--onConfigurationChanged");Configuration cfg = getResources().getConfiguration();if (cfg.orientation == Configuration.ORIENTATION_LANDSCAPE) {System.out.println("ORIENTATION_LANDSCAPE");} else if (cfg.orientation == Configuration.ORIENTATION_PORTRAIT) {System.out.println("ORIENTATION_PORTRAIT");}nowLanguange = getResources().getConfiguration().locale.getCountry();if(nowLanguange !=null && !nowLanguange.equals(lastLanguage))        {    lastLanguage =nowLanguange;refresh();}}private void refresh() {//finish();android.os.Process.killProcess(android.os.Process.myPid());Intent intent = new Intent(MainActivity.this, MainActivity.class);setIntent(intent);startActivity(intent);}

方法二(治标):

安装并首次进入APP时,定义一个变量记录当前手机语言环境并存放在SharedPreferences对象中,以后每次登陆都进行检查

if ( APP处于已登录状态 && !( 当前手机语言环境.equals (上次登录时的语言环境) ) ){

上次登录时的语言环境 == 当前手机语言环境;

退出登录;

重新登陆;

} else {

继续登陆;

}

以下为Locale下几种方法返回的结果,经比较可使用getCountry()方法记录并判断当前手机语言设置。

其中Locale  locale = getResources().getConfiguration().locale;

中文简体:

locale.getLanguage()--zh

locale.getDisplayLanguage()--中文

locale.getCountry()--CN

locale.getDisplayName()--中文 (中国)

中文繁体:

locale.getLanguage()--zh

locale.getDisplayLanguage()--中文

locale.getCountry()--TW

locale.getDisplayName()--中文 (台灣)

美国英语:

locale.getLanguage()--en

locale.getDisplayLanguage()--English

locale.getCountry()--US

locale.getDisplayName()--English (United States)

英国英语:

locale.getLanguage()--en

locale.getDisplayLanguage()--English

locale.getCountry()--GB

locale.getDisplayName()--English (United Kingdom)

日语:

locale.getLanguage()--ja

locale.getDisplayLanguage()--日本語

locale.getCountry()--JP

locale.getDisplayName()--日本語 (日本)

VisualStudio添加不同语言环境的values资源文件目录:

指定环境,此处以添加美国英语为例:

下面添加一个文本资源文件,将英语文本放在这个文件中,即可切换为英文文本:

Android Studio之APP国际化相关推荐

  1. 【Android Studio安装部署系列】十八、Android studio更换APP应用图标

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目后会有一个默认图标,那么如何更换图标呢? 替换图标 这个方案不建议直接在已有项目上更换图标,建议 ...

  2. android studio运行APP到手机

    android studio运行APP到手机 一.数据线连接手机调试 1.打开android手机的开发者模式(机型不一样,打开方式不一样,具体可百度) 2.用数据线把电脑和手机连起来(最好用原装数据线 ...

  3. Android Studio运行app启动模拟器一直卡在“Wating for target device to come online”解决方法

    Android Studio运行app启动模拟器一直卡在"Wating for target device to come online"的情况如何解决 在启动模拟器如果一直卡在& ...

  4. Android studio设计app登录界面

    Android studio设计app登录界面 UI界面设计 在设计登录界面时,可以使用不同布局方式来实现该功能,通常情况下使用的是LinearLayout(线性布局)和TableLayout(表格布 ...

  5. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...

    Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...

  6. Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】

    目录 一.前言 二.效果展示 1.APP界面展示 2.C51硬件展示 三.Android Studio APP源代码 1.AndroidManifest.xml 1.请求联网: 2.开放明文传输: 2 ...

  7. Android获取电子签名内容,Android Studio 获取app签名

    今天在学习整合高德地图的时候,需要app的sha1码. image.png Android Studio 获取app签名的步骤如下: 1.Build下的Generate Signed APK imag ...

  8. Android studio诗词app古诗词中国风记事本ui设计中国古诗词

    Android studio诗词app古诗词中国风记事本ui设计中国古诗词 界面设计: 视频介绍: Android 中国风诗词记录诗词记事本Android studio编译Android笔记本记事本 ...

  9. android studio自定义app图标

    android studio自定义app图标 1.右键app名称-New-ImageAsset 2. 选择Launcher Icons(Legency only) Name 图标名称这里不要更改 不更 ...

最新文章

  1. 高可用集群之分布式文件系统
  2. 【开发环境】PyCharm 配置 GitHub ( 在 PyCharm 中向 GitHub 提交代码 )
  3. SAP成本会计分录大全
  4. oracle ajax储存过程分页,创建 Oracle 分页存储过程
  5. linux硬连接脚本,linux 硬链接和软链接深入理解
  6. AWT_方位布局(Java)
  7. Mybatis编写初始化Dao代码
  8. Eclipse中ICTCLAS 2011 的java调用
  9. 线性代数知识荟萃(3)——行列式
  10. vue 事件调用 传参_高效开发小程序,Vue 和微信小程序的区别你该了解一下
  11. 计算机VFP试题答案,2010全国计算机vfp二级笔试试题及答案
  12. 计算机语言学方面的期刊.,自然语言处理投稿哪些sci期刊
  13. RPG游戏制作-06-与NPC的交互
  14. 文科生能学计算机专业难吗,文科生能读计算机科学专业吗?
  15. 视频监控客户端-GB28181之转码库-转码格式支持H265、H264、MPEG4、MPEG2
  16. 百度的链接打不开解决办法
  17. Python探索性数据分析(EDA)统计数据和建模
  18. 机器学习基础:朴素贝叶斯分类器及其应用示例
  19. 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法 1
  20. 有害气体监测物联网云平台方案

热门文章

  1. 【微信公众号开发(Java版)笔记整理二】消息处理
  2. 懂商业的技术合伙人(14):使用HTML5开发App客户端,HTML5+和MUI框架基本介绍
  3. idea怎么样打开introduce local variable
  4. 慧荣SMI SM32X量产工具G1219 图文教程.恢复方法
  5. 微信小程序日历签到功能
  6. linux 运维之小白入门
  7. Liunx-02建立liunx实验环境
  8. 2022年西式面点师(中级)考试及西式面点师(中级)新版试题
  9. centos7下mysql定时全量备份、增量备份实现方法
  10. 东汤温泉.5 (照片50张,外链)