2011-06-28 15 views
12

La captura de pantalla siguiente muestra mi problema.Problema de alineación de texto al utilizar la fuente árabe

La primera EditText muestra una sugerencia en árabe que se desplaza hacia arriba, ahora la segunda EditText es solo para referencia que muestra la versión en inglés completamente bien. Lo mismo ocurre con el Button.

que han declarado la cadena en strings.xml así:

<string name="ar_login">دخول</string> 

screenshot of the problem

Así es como me puse pista del EditarTexto:

UserName.setTypeface(ArabicFont); 
String hint = getString(R.string.ar_HintUserName); 
.... 
UserName.setHint(hint); 

ACTUALIZACIÓN: He utilizado este , pero de ninguna utilidad:

UserName.setGravity(Gravity.CENTER_VERTICAL); 

Pero con esto, Text se movió un poco hacia abajo; pero supongo que no es genérica:

UserName.setPadding(0,15,0,0); 

Con Padding, English palabras se mueven a la baja.

ACTUALIZACIÓN 2: Originalmente los textos árabes están separados; significa que se muestran letra por letra. Así que para unirme a ellos, estaba usando este Arabic Reshaper. Para descargar código, marque esta link

Ahora en que formar de nuevo el texto árabe y después fijar en TextView o como EditText's Indirecta, ¡Gracias cambió upwords pero sin remodelar, está bien.

Supongo que si tengo que cambiar la clase de remodelación O hacer que mi vista de texto no divida la palabra. ¿Pero no sabes a dónde ir?

+0

Esto parece un problema de Android. ¿Intentó jugar con el atributo 'gravity'? – Macarse

+0

Creo que este es un problema dependiente del idioma (árabe, inglés). usa padding_top para administrarlo. –

+0

Con padding_Top, tengo dos problemas: primero no será genérico, segundo tengo que cambiar el relleno a original para inglés. – Farhan

Respuesta

3

todavía soy incapaz de descubrir por qué Android divide las palabras en árabe en cartas separadas de todos modos en mi segunda edición que estoy proporcionando un enlace que utiliza una clase para volver a unir las letras separadas y formar una palabra de nuevo.

En la función reshape, se agregó erróneamente \n al final, simplemente al eliminarlo se resuelve el problema.

+0

¿cómo puedo eliminarlo? –

+0

usted no conoce el poder de "retroceso" ??: P – Farhan

0

Sólo una conjetura ... :),

  1. ¿Y si el tamaño de la fuente árabe es menor? [Si este es el caso, entonces Gravity.CENTER_VERTICAL debería haber trabajado para usted :(]

  2. puede ser que este es el estilo de ese archivo de fuente. ¿Qué tal intentar un archivo fuente diferente para el texto árabe?

+0

Lo aprecio pero no está funcionando. 1. El tamaño de la fuente no es un problema, pero aún así lo comprobé con gravedad; mismo resultado. 2. Marcado con un archivo de fuente diferente; mismo resultado .. :( – Farhan

1

estoy seguro de su problema con el archivo de fuente que se está utilizando.!

[en este momento no se me permite subir la captura de pantalla como mis reputaciones son más bajos :(]

para el diseño, I estaba configurando texto en xml y tipo de letra en el código. Y no estoy estableciendo g cualquier atributo como relleno/gravedad. Pero funcionó bien para mí.

Por lo tanto, puedo asegurarle que el uso de un archivo de fuente cuyo estilo coincida con su requisito resolverá su problema.

Sólo para ayudar con, pero no estoy seguro de que me dieron archivo de fuentes de DroidSansFallback.ttf

+0

Con el archivo adjunto, los resultados son los mismos. ¿Puede enviarme el archivo que estaba usando, en mi dirección de correo electrónico en mi perfil? Realmente no puedo resolverlo. Probé con otro archivo de fuentes pero el mismo resultado. – Farhan

Cuestiones relacionadas