博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在程序中获取系统语言及修改value-的语言
阅读量:2186 次
发布时间:2019-05-02

本文共 1658 字,大约阅读时间需要 5 分钟。

很多开发者考虑使自己的Android程序兼容多国语言,其实Google在设计Android时已经考虑了本地化问题,通过定义相关的资源可以自适应当前手机的语言来加载响应的资源文件。Android开发网列出主流的本地化:
  语言自适应
   在Android工程的res目录下,通过定义特殊的文件夹名称就可以实现,比如我们的程序兼容 简体中文、日文、英文、法文和德文,常规的字符strings.xml保存的目录在values文件夹中,这里我们就需要定义 values-zh-rCN、values-ja、values、values-fr和values-de。当然如果涉及到参数配置类xml文件夹也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。
   当然我们用代码如何获取本机的语言类型呢? 通过代码 :
   String cwjLocale = getResources().getConfiguration().locale.getCountry();  即可获取,其中cwjLocale保存了国家代码,这些定义在java.util.Locale的字段中,直接对比即可,比如我们英文版固件设备为US。
  当然我们需要测试,可能会强制加载某国语言,可以使用在Activity的SetContentView之前调用,比如强制简体中文,代码如下:
         Resources resources = getResources();
         Configuration config = resources.getConfiguration();
         config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
         DisplayMetrics dm = res.getDisplayMetrics();
         resources.updateConfiguration(config, dm);
  屏幕分辨率自适应 
    这里我们需要判断两种大体情况,屏幕的方向,比如常规的纵向port和横屏land,我们定义的图片资源为
    layout或drawable,而横屏情况下位layout-land和drawable-land,当然还有一种情况就是分辨率。
  目前Android手机分辨率有
   HVGA (320x480) 的G1、G2、G3 对应标准的 drawable-mdpi
  QVGA (240x320) 的G4 ,对应 drawable-ldpi
  WVGA (480x800) 的N1,对应 drawable-hdpi 。
  最终我们以MMS应用的例子,对应res文件夹的摆放如图:
1.首先,如果要程序自动适应系统语言进行转变,可以在res下添加相应的语言文件夹:如:添加中文,则文件夹命名为values-zh-rCN,如果不清楚需要的名字可以到:E:\android-sdk-windows\platforms\android-8\data\res,如这样的文件夹下寻找。这样就可以让程序自动适应系统的语言来选择语言。
2.如果我们想在程序内部可以手动地选择语言则:
  a.首先获得当前的语言或者国家:
String able= getResources().getConfiguration().locale.getCountry();
  b.进行判断:如果是中文则返回的able.equals("CN")
  c.进行设置的代码为:
//选择中文
Configuration config = getResources().getConfiguration();
DisplayMetrics dm = getResources() .getDisplayMetrics();
config.locale = Locale.SIMPLIFIED_CHINESE;
getResources().updateConfiguration(config, dm);
  d.最后用sharedPreferences保存当前的语言设置

转载地址:http://borkb.baihongyu.com/

你可能感兴趣的文章
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>