gpt4 book ai didi

android - TextView 上用于 Rtl 和 Ltr 文本的 TextAlignment

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:46 26 4
gpt4 key购买 nike

TextView 如何决定文本左对齐或右对齐?

如果您想对齐一段文本,您应该应用 AlignmentSpan,它应该是这 3 个值(NORMAL、OPPOSITE、CENTER)之一。

如果您将对齐方式设置为 NORMAL,则取决于第一个字符是什么,它决定将文本左对齐还是右对齐。

下面是一些文本和对齐的例子:

你好:左

@嗨:左

戴维斯:对

@سلام: 对

*@嗨:左

*@سلام: 对

嗨 سلام : 左

你好:对

我想知道 textView 究竟是如何确定文本对齐方式的?如果可能,请提供正则表达式模式以确定文本对齐方式。

我想要这样的东西:

Pattern regex = Pattern.compile(patternString);
if(regex.matcher(text).matches()) {
// now text will be left aligned
}

我想找出 patternString 值。

最佳答案

算法似乎是根据文本的第一个字母字符来决定的(即它找到非符号字符并检查它是否是 RTL 字符)。

可以在RegEx中使用\p{L}\p{Letter}找到第一个匹配项,然后将其第一个字符与RTL unicode的范围进行比较字符:

boolean isRtl(String str) {
Pattern p = Pattern.compile("([^\\p{L}]*)(\\p{L})(.*)";
Matcher m = p.matcher(str);
if (m.matches()) {
String firstMatch = m.group(2);
char c = firstMatch.charAt(0);
return c >= 0x590 && c <= 0x6ff;
}
return false;
}

关于android - TextView 上用于 Rtl 和 Ltr 文本的 TextAlignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41547474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com