当从RTL资源(如阿拉伯文本或LTR资源,如英语)获取文本时,似乎TextView文本方向(或Gravity)会自动更改。什么是默认的TextView方向(或Gravity)以及如何获得它? 实际上我正试图找出输入了什么样的文本语言(RTL或LTR)?如果它是RTL和LTR的混合文本怎么办?
答案 0 :(得分:4)
如果您的布局中有TextView,则可以使用
来获取该视图的重力TextView textView = (TextView) findViewById(R.id.text_view);
int gravity = textView.getGravity();
默认情况下,该值为8388659。 等于0x800033。
请参阅TextView here的文档。通过操作十六进制值,您可以获得TextView的默认文本方向。
例如:在这种情况下,它是0x800033。这是 0x800003 |的0x30 即可。这意味着重力是开始|顶强>
答案 1 :(得分:3)
默认的TextView方向(或重力)是什么
在TextView源代码中,它被初始化为:
private int mGravity = Gravity.TOP | Gravity.START;
似乎Gravity.TOP
和Gravity.START
。重力 START
对于LTR或RTL是独立的。
以及如何获得
所以得到它(你只知道它Gravity.START
)对你的目的是没有意义的 - 找出输入什么样的文本语言(RTL或LTR)。 / p>
对于其他方法,您可以估计文本本身是RTL还是LTR;这里讨论:例如Identifyng RTL language in Android。
答案 2 :(得分:1)
默认TextView引力是 - Gravity.TOP | Gravity.START