最近在做阿拉伯语下RTL支持,在网上收集到一些资料,跟大家分享下。

第一步:首先要在AndroidManifest中的Application中添加属性android:supportsRtl=true”

第二步:

第三步:切换到阿拉伯语,查看显示不正确的布局,按照下面的方法具体调整了

(英文)Android 4.2 支持原生RTL(由右到左显示)

http://blog.csdn.net/ultrapro/article/details/8690145

android 开发者网站

http://developer.android.com/about/versions/android-4.2.html

RTL布局支持

Android现在提供了一些API,使您可以构建更优雅的变换布局方向的用户界面。这些界面将支持由右到左(RTL)的语言和阅读方向。比如阿拉伯语和希伯来语。

为了使您的应用支持RTL布局,需要在manifest文件中设置元素的android:supportsRtl属性为“true”。一旦启用,该系统将启用各种RTL API来用RTL布局显示您的应用。举例来说,在操作栏中将操作按钮显示在左侧,而把图标和标题显示在右侧。所有您用框架提供的View类所构建的布局也会以相反的方向显示。

如果您需要在显示RTL布局时进一步优化您应用的外观,有两个基本层面的优化:

  1. 将左——右方向的布局属性转变为开始——结束方向的布局属性。 
    例如,用android:layout_marginStart替换android:layout_marginLeft,用android:layout_marginEnd替换android:layout_marginRight。 
    RelativeLayout类也提供了相应的布局属性,来替换左/右位置,如:android:layout_alignParentStart替换android:layout_alignParentLeft,用android:layout_toStartOf替换android:layout_toLeftOf。

  2. 或者,使用ldrtl资源限定词(ldrtl意味着布局方向由右至左)资源提供完整的针对RTL布局优化过的布局文件。例如,您可以在res/layout/目录保存您默认的配置文件,而在res/layout-ldrtl/目录下保存您针对RTL优化过的布局。 
    ldrtl限定词对drawable资源也很适用,这样您就可以提供与阅读方向相同的图片了。

框架中还有各种其它的支持RTL布局的API,比如,在View类中,您可以在定制的view中实现适当的行为;在Configuration类中,可以查询当前的布局方向。

注意:如果您用SQLite而表名或列名使用了“仅允许数字”特性。请小心:当您的设备设置为阿拉伯地区,使用String.format(String, Object...) 方法时会因为数字转换成对应的阿拉伯文而导致错误。您必须使用String.format(Locale,String,Object...),以确保数字以ASCII的编码保存。还可以使用String.format("%d", int)来取代String.valueOf(int)以格式化数字。

最近遇到个问题,阿拉伯语下全英文会靠左显示,在对应TextView 中加android:textDirection="rtl"这个属性就会跟阿拉伯文一样都显示在右边,并且不会影响阿拉伯文的显示。跟大家分享下,攒人品,哈哈 :)

如果想要调整文字

转自:http://article.yeeyan.org/view/37503/335086


更多相关文章

  1. 2018-07-27 详解Android基本布局
  2. 控件布局
  3. Android常用的两种基本布局——线性布局LinearLayout和相对布局R
  4. Flutter UI基础 - 布局之Row/Column/Stack
  5. [Android]带你了解 Android 约束布局 ConstraintLayout
  6. Android——六大基本布局总结

随机推荐

  1. 运算符以及函数的使用
  2. 第十三课 PHP常用运算符、函数
  3. 初识 php 数值运算符与字符串运算符、字
  4. 意派Epub360丨重阳节品牌祝福海报H5案例,
  5. 【前端】微信网页中长按二维码图片能弹出
  6. 【前端】打开网站时loading是怎么判断资
  7. 【前端】这个js代码怎么内存泄漏了呢??评论
  8. 【前端】跪求大神:select怎么做表单提示
  9. 【前端】怎么识别pc端的二维码已经被手机
  10. 【前端】JSP页面在IE浏览器下默认“文本