2015-11-08 25 views
4

当它从RTL资源(如阿拉伯文本或LTR资源,如英语)获取文本时,似乎TextView文本方向(或重力)会在Android中自动更改。什么是默认的TextView方向(或重力)以及如何获取? 其实我试图找出输入什么样的文本语言(RTL或LTR)?而如果它是兼容RTL和LTR的混合文本呢?什么是默认的TextView Gravity?

+0

如果你想知道输入什么样的文本语言(RTL或LTR),只需添加一个textWatcher即可。 –

回答

3

什么是默认的TextView方向(或重力)

在TextView的源代码其被初始化为:

private int mGravity = Gravity.TOP | Gravity.START; 

看来Gravity.TOPGravity.START。重力START是独立的LTR或RTL。

以及如何获取

所以得到它(你只知道它Gravity.START)是不适合您的目的 - 找出什么样的文本语言(RTL或LTR)输入

对于其他方法,您可以估计文本本身是RTL还是LTR;这里讨论:例如Identifyng RTL language in Android

+0

非常感谢。我从你提到的链接中得到了答案。 – Mariox

3

如果你在你的布局一个TextView,您可以通过使用获得这一观点的严重性,

TextView textView = (TextView) findViewById(R.id.text_view); 
int gravity = textView.getGravity(); 

默认情况下,该值将是8388659. 等于0x800033。

请参阅TextView here的文档。通过操作十六进制值,您可以获得TextView的默认文本方向。

例如:在这种情况下它是0x800033。这是0x800003 | 0x30。这意味着重力是start |顶部

1

默认的TextView引力是 - Gravity.TOP | Gravity.START

+0

这是回答问题,还是评论? –