Android 国际化

简介: 由于公司的项目是投放 google play store , 所以要做国际化。国际化遇到的两个大问题 字符串国际化 布局样式国际化   一:字符串国际化        解决这个问题很简单,在res目录下放不同国家的value文件夹,在相应文件夹里的 strings.xml 文件放对应的语言即可。
由于公司的项目是投放 google play store , 所以要做国际化。国际化遇到的两个大问题
  • 字符串国际化
  • 布局样式国际化

 

一:字符串国际化

       解决这个问题很简单,在res目录下放不同国家的value文件夹,在相应文件夹里的 strings.xml 文件放对应的语言即可。比如

      

二:布局样式国际化

      中国人的阅读习惯是从左往右阅读、阿拉伯国家的阅读习惯是从右往左读。所以同一个布局在不同的语言环境下,显示的样式是不一样的。比如:

      默认情况下的布局

       

       

      阿拉伯语言情况下的布局

       

          例子中的布局很简单,左边是一个文本,文本的后面有一张图片。 

          可以看到在阿拉伯语言环境下的页面布局,文本跑到了屏幕的右侧,而图片却不见了。(前面已经说过阿拉伯国家的阅读习惯是从右往左的)

 解决方案:

  • 方案一:建立多个layout 文件夹,从新布局
  • 方案二:Android  4.2系统之后,Google在Android中引入了RTL布局  

对于方案一,这个方法比较老了,而且几乎要把所有的布局重写一遍,所以推荐使用第二种方法。在Android  4.2系统之后,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的显示,为了更好的兼容RTL布局,google推荐使用MarginStart和MarginEnd来替代MarginLeft和MarginRight,这样应用可以在正常的屏幕和由右到左显示文字的屏幕上都保持一致的用户体验。

主要的属性有

      android:layout_marginStart
      android:layout_marginEnd
      android:paddingStart
      android:paddingEnd
      android:layout_toStartOf
      android:layout_toEndOf

 

用RTL写的布局为:

 

 注意:

   在使用的时候RTL布局的时候,AndroidManifest.xml 中添加RTL的支持

 <application
        android:name="com.yiba.sharewe.application.APP"
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

  

 

相关文章
|
2月前
|
XML Java 开发工具
Android的国际化与本地化
Android的国际化与本地化
16 1
|
自然语言处理 Android开发 图形学
修行Android Studio技巧到出神入化,快速涨薪-【国际化】、【JPG/PNG转WebP】、【代码折叠】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
125 0
|
Android开发
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
323 0
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
|
XML Android开发 数据格式
Android中的资源与国际化!
  今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示:   我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,values里的sring.xml是用来存放文字资源,一个key对应一个value值。
790 0
|
机器学习/深度学习 Android开发 索引
Android国际化:资源+初始化+系统适配
资源匹配 字符资源values、布局资源layout、图片资源drawable,都可以在文件夹后添加国家后缀,放对应语言的资源。则系统会根据设置的语言自动去找对应语言的资源,如果没有设置的系统语言资源,则会拿去拿默认资源(values、layout、drawable文件夹下)。
|
Android开发
安卓国际化开发中的时区问题之——夏令时,冬令时
在说时区问题的时候,估计很多人都很不屑。因为获取时区的方法真的太简单了。尤其是很多面向百度编程的iter。 比如,获取时区的方法一句就能搞定:        String timeZone =“GMT”+String.valueOf(TimeZone.getDefault().getRawOffset() / (3600 *1000)); 当时很不屑这个问题的时候。
2222 0
|
Android开发
Android 国际化
1. 应用内设置语言 @Override protected void onCreate(Bundle savedInstanceState) { super.
870 0
|
API Android开发 网络协议
Android 8.0 新特性之语言区国际化和隐私性
语言区域和国际化 Android 7.0引入了能指定默认类别语言区域的概念,某些API在使用默认的DISPLAY类别语言区域时,仍然使用的是不带参数Locale.getDefault()函数。
1370 0