Android 4.2原生支持从右到左的文字排列格式

转自 http://www.importnew.com/3517.html

Android 4.1(Jelly Bean)  在TextViewEditText 元素里对“双向文字顺序”提供了有限的功能支持,允许应用程序在编辑和显示字符的时候,能够同时支持从左到右(LTR)以及从右到左(RTL)的排列格式。Android
4.2目前已经对“从右到左”的文字排列顺序给予了原生级别的全面支持,包括提供了一个布局镜面工具,使得开发者把能够将优质的用户体验带给每一位用户,不管该用户的书写顺序是从左到右,还是从右到左。

Android 4.2保证了该新特性不会影响到目前已经存在程序,如果之前的程序代码不修改,其应用的外观将维持现状。如果你想要修改程序,那么仅仅需要很小的改动,应用就可以自动地被“镜面反射”,这样就能轻易地将系统语言设置为从右到左的书写格式(阿拉伯语,希伯来语和波斯语都采用这种格式)。例如,下面的截图就展示了上述的设置效果:

从左到右的布局方式

 

从右到左的布局方式

 

要实现RTL(从右到左)的布局镜面反射,仅仅需要遵循下列步骤就可以做到:

1. 在你的应用程序声明文件(manifest)里声明开启RTL mirroring的支持。具体做法是:在manifest.xml声明文件的<application>元素中,添加 android:supportsRtl=”true”

2. 修改应用程序中所有的“left/right”布局属性,改为对应的”start/end”布局

1)如果你的应用程序是针对Android 4.2目标平台(应用的targetSdkVersion或者minSdkVersion是17或者更高), 那么你就应当用“start”和“end”替换原来的“left”和“right”。例如,android:paddingLeft应当被替换为android:paddingStart。

2)  如果你想让你的应用程序与Android 4.2之前的版本保持兼容(也就是与targetSdkVersion或者minSdkVersion为16或者更早的版本),那么你应当既加上“start”和“end”,又加上“left”和“right”。例如,你应当同时写上:adnroid:paddingLeft和android:paddingStart。

 

为了更精确地控制应用程序在UI上的文字书写顺序(从左到右,或者从右到左),Android 4.2 引入了如下的API:

android:layoutDirection —该属性设置组件的布局排列方向

android:textDirection — 该属性设置组件的文字排列方向

android:textAlignment — 该属性设置文字的对齐方式

getLayoutDirectionFromLocale() —该方法用于获取指定地区的惯用布局方式

在使用从右到左的排列方式时,你甚至创建自定义的布局方式,可绘制对象,以及其他资源。仅仅是简单地使用资源匹配器“ldrtl”对你的资源进行一下标识,你就可以把资源定义为“从右到左方向的资源”。在调试和优化从右到左的布局方面,HierarchyViewer目前支持对start/end属性,布局方向,文字方向,文字对齐方式等所有信息的层次化显示。

那么现在是时候为所有的用户开发优美的Android应用程序了,无论用户的文字语言习惯是从左到右,还是从右到左。我们非常期待看到这些优美应用的产生!

 

时间: 2024-05-20 13:39:35

Android 4.2原生支持从右到左的文字排列格式的相关文章

Android 3.1原生支持FLAC无损音乐格式

使用Android的http://www.aliyun.com/zixun/aggregation/18635.html">音乐发烧友们,这里有个好消息 Android最新版本(3.1蜂巢)的文件格式表已经正式公布,根据核心媒体格式列表所说,这款操作系统已经原生支持FLAC(无损音频编码)文件了.这意味着如果想听高品质音乐,您再也不用使用第三方软件或者刷入第三方修改的ROM 系统自带的音乐播放器就能轻松播放这汇总格式的音乐文件了. 使用Android的音乐发烧友们,这里有个好消息 Andr

在安卓应用上支持从右到左(RTL)布局

世界上的大部分语言的书写方式都是从左到右,但是也有一些语言是从右到左(Right to Left,以下简称为 RTL )书写的,譬如阿拉伯语,希伯来语以及叙利亚语.虽然这些都是小语种,支持RTL能给当地用户更好的体验. 从 Google 官网得知,安卓在SDK17(4.2 Jelly Bean)版本的以上能原生的支持RTL,只需以下几个步骤就能实现. 在 AndroidManifest.xml 的 uses-sdk 标签中,将 targetSdkVersion 或 minSdkVersion 设

Android笔记之:深入为从右向左语言定义复杂字串的详解_Android

我们所使用的语言,无论是中文还是英语,都是从左向右读的(Left-To-Right),因此我们已经十分习惯了从左向右读(Left-To-Right).一旦遇到了从右向左读的(Right-To-Left),便会十分的不习惯,甚至比见到火星文还难受.光看着就令人难受了,但更让人崩溃的是,还要为应用去定义Arabic语言的字串,也就是为应用添加Arabic语言支持,不但要查看大量的Arabic天书,还要处理一些复杂的字串.对于Right-To-Left的语言,最理想就是以下二种Case,它不需要特别的

OpenGL ES 在 Android 中对 GLU 的原生支持

OpenGL ES 在 Android 中对 GLU 的原生支持 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 注: 我总是喜欢多了解些语言,比如英文.法文.俄语.德文.日文.韩文.藏语.蒙古

黑莓将原生支持 Android 应用

黑莓将自己复苏的最后一线希望寄托在了Android身上,当然他们并不是要采用谷歌的Android操作系统.黑莓即将发布的10.2.1更新将原生支持Android应用. 黑莓将在自己的应用商店BlackBerry World中向开发者放开提交Android app,这一消息由众多开发者在CES 2014展会上得到了确认.至于Android应用能否能够拯救黑莓,我们还当拭目以待. 稿源:cnet/cnbeta 文章转载自 开源中国社区 [http://www.oschina.net]

难怪苹果系统的界面这么好看 - 原生支持 OpenGL 的原因

难怪苹果系统的界面这么好看 - 原生支持 OpenGL 的原因 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 难怪苹果系统的界面这么好看 - 原生支持 OpenGL的原因 微软的 Win7 再

Android 开发实现EditText 光标居右显示

Android 开发实现EditText 光标居右显示 前言: 有些时候肯定会遇到这种奇葩的需求,光标要靠右显示,因为Android里面光标默认是靠左显示的,那怎么实现呢,肯定有办法的,这里提供一种实现方式,看布局 <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id

Android React Native原生模块与JS模块通信的方法总结

Android React Native原生模块与JS模块通信的方法总结 前言: 在做React Native开发的时候避免不了的需要原生模块和JS之间进行数据传递,这篇文章将向大家分享原生模块向JS传递数据的几种方式. 方式一:通过Callbacks的方式 说起Callbacks大家都不陌生,它是最常用的设计模式之一.无论是Java,Object-c,C#,还是JavaScript等都会看到Callbacks的身影. 原生模块支持Callbacks类型的参数,该Callbacks对应JS中的f

Windows 10系统原生支持mkv格式视频播放

  目前视频文件格式非常多,但是Windows系统原生支持的视频文件格式有限,需要安装各种各样的播放器.解码器.而现在,Windows 10已经可以原生支持MKV封装格式的视频播放了. 如果在Windows 10技术预览版里直接用Windows Media Player打开后缀名为MKV的视频文件,播放器仍然会提示你无法识别扩展名,但只要忽略该提示就能顺利播放视频了.而在以前的Windows版本中,忽略后也是无法播放MKV视频文件的. MKV: MKV并不是视频编码格式,准确地说是封装格式,就像