2012-03-24 13 views
5

Paint.measureText no es preciso con texto en árabe. Esto es lo que probé:Android TextView measureText for Arabic

Tengo un TextView tv1.

tv1.getWidth(); da 480, lo que está bien. tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بكر أبو الفضل السيوطي"); da 502, que es más grande que el ancho de la pantalla.

¡Mal resultado, ya que el texto ocupa aproximadamente el 80% del ancho de línea! El resultado debería ser alrededor de 400.

Gracias.

+0

Hola yZaroui, yo también tengo el mismo tipo de problema. por favor ayúdame, si tienes solución para esto. – Raj

+0

¡Yo también tengo el mismo problema y el problema aparece solo en Galaxy Tab! ¡Funciona bien en Galaxy S3! – AVEbrahimi

+0

He enfrentado el mismo problema, intente cambiar la fuente. –

Respuesta

0

me enfrenté a este problema hoy. todo está funcionando como se esperaba y debe saber que cuando su texto contiene vocales árabes como ّ ِ ُ َ caracteres, todos ellos se calculan en el ancho como caracteres separados y android Paint.measureText no es consciente de que no debe tener en cuenta esos caracteres, porque no agregará ancho adicional y se dibujarán en la parte superior e inferior de otros caracteres.

la solución es: primero debe eliminar esos caracteres del texto y luego medir su texto.