默认情况下 TextView Gravity 是什么?

What is TextView Gravity by default?

似乎 TextView 文本方向(或重力)在从 ​​RTL 资源(例如阿拉伯文本)或 LTR 资源(例如英语)获取文本时 Android 会自动更改。什么是默认的 TextView 方向(或重力)以及如何获得它? 其实我想知道输入的是哪种文本语言(RTL 或 LTR)?如果它是同时具有 RTL 和 LTR 的混合文本怎么办?

如果您的布局中有一个 TextView,您可以使用

获取该视图的引力
TextView textView = (TextView) findViewById(R.id.text_view);
int gravity = textView.getGravity();

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

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

例如:在本例中为 0x800033。这是 0x800003 | 0x30。这意味着重力是 start |顶部.

What is the default TextView direction (or Gravity)

在TextView源码中初始化为:

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

好像是Gravity.TOPGravity.START。 Gravity START 与 LTR 或 RTL 无关。

and how to get that

所以得到它(你只知道它Gravity.START)对你的目的来说是没有意义的——找出输入的文本语言(RTL或LTR).

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

默认 TextView 引力为 - Gravity.TOP | Gravity.START