textalignment studio right example code align android textview text-alignment

studio - textview android align right



TextAlignment en TextView para texto Rtl y Ltr (1)

¿Cómo decide TextView alinear el texto a la izquierda o a la derecha?

Si desea alinear una parte del texto, debe aplicar AlignmentSpan, que debe ser uno de estos 3 valores (NORMAL, OPUESTO, CENTRAL).

Si establece la alineación en NORMAL depende de qué es el primer carácter, decide alinear el texto a la izquierda o a la derecha.

A continuación hay algunos ejemplos de texto y alineación:

Hola: izquierda

@Hi: izquierda

سلام: Derecha

@ سلام: Derecha

* @ Hola: izquierda

* @ سلام: Derecha

Hola, سلام: izquierda

Hola Hola: Derecha

Quiero saber exactamente cómo textView determina la alineación de texto? Si es posible, proporcione un patrón de expresiones regulares para determinar la alineación del texto.

Quiero algo como esto:

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

Quiero averiguar el valor de PatternString.


Parece que el algoritmo decide basado en el primer carácter basado en letras del texto (es decir, encuentra el carácter no simbólico y comprueba si es un carácter RTL o no).

Puede usar /p{L} o /p{Letter} en RegEx para encontrar la primera coincidencia, luego comparar su primer carácter con el rango de caracteres 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; }