Android 阿拉伯语的处理

应用程序支持RTL布局

在AndroidManifest.xml的<application>中,添加android:supportsRtl=true
android:supportsRtl声明您的应用程序是否支持从右到左(RTL)布局。
如果设置为true并targetSdkVersion设置为17或更高,则系统将激活并使用各种RTL API,以便您的应用程序可以显示RTL布局。如果设置为false或者targetSdkVersion设置为16或更低,则RTL API将被忽略或无效,并且无论与用户的区域设置选项关联的布局方向如何,应用都将表现相同。

使用RTL布局

Android 4.2 后,paddingLeftpaddingRightlayout_marginLeftlayout_marginRightlayout_alignParentLeftlayout_alignParentRight等属性使用paddingStartpaddingEndlayout_marginStartlayout_marginEndlayout_alignParentStartlayout_alignParentEnd替换。
可使用AS工具一键替换(Refactor > Add RTL Support Where Possible)
另外,代码中也需要使用setMarginEnd等类似的方法去处理。

定义文本的方向

TextView默认情况下一般语言是从左到右显示,阿拉伯语是从右到左显示。
如果布局随locate反转后,语言显示会混乱,因此我们需要使用android:textDirection="locale" 属性来设置文本方向也随locate翻转。

定义文本的对齐方式

android:textAlignment
center(居中),inherit(默认,居左边显示),viewStart(居左显示 API 14),viewEnd(居右显示 API 14),textStart(居左显示 API 17),textEnd(居右显示 API 17)。
主要用于EditText的显示。

设置组件的布局方向

当我修改了系统语言为阿拉伯语后,我的应用不会翻转布局,只有重启设备后应用的布局才会翻转,但是theme添加了android:layoutDirection="locale"属性后,切换语言后应用的布局马上翻转。

图片/动画/图标的方向

有方向的图片需要调转方向后,存放在drawable-ldrtl-xxx这个资源文件夹下面(更改语言后需要重启,改为drawable-ar-xx后可实时生效)。同理还有动画和图标的rtl文件夹:anim-ldrtl,mipmap-ldrtl-xxx。

    原文作者:xcz1899
    原文地址: https://www.jianshu.com/p/efe17eb3b3a3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞