默认情况下什么是 TextView Gravity?

Mar*_*iox 7 android gravity text-alignment textview direction

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

hat*_*ata 7

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

在 TextView 源代码中,它被初始化为:

private int mGravity = Gravity.TOP | Gravity.START;
Run Code Online (Sandbox Code Playgroud)

看来Gravity.TOPGravity.START。GravitySTART独立于 LTR 或 RTL。

以及如何获得

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

对于其他方法,您可以估计文本本身是 RTL 还是 LTR;此处讨论:例如,在 Android 中识别 RTL 语言


Msp*_*Msp 5

如果您的布局中有 TextView,则可以通过使用获得该视图的重力,

TextView textView = (TextView) findViewById(R.id.text_view);
int gravity = textView.getGravity();
Run Code Online (Sandbox Code Playgroud)

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

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

例如:在这种情况下,它是 0x800033。哪个是0x800003 | 0x30。这意味着重力开始| 顶