2011-07-19 4 views
6

Necesito calcular las longitudes en píxeles para todos los textos proporcionados por mi cliente. El problema es que proporcionaron solo una fuente regular y el estilo de cursiva debe ser renderizado por Android. Un error conocido de Android es que para las fuentes en cursiva (renderizadas como cursivas), el ancho de TextView no se calcula correctamente y se corta el final del texto.Android: objeto measureText on Paint para fuentes renderizadas en cursiva

¿Tiene alguna idea sobre cómo calcular la longitud de estos textos en cursiva correctamente?

Hasta ahora he probado los métodos measureText y getTextWidths, pero creo que el error está en algún lugar de las fuentes de Android porque la longitud de los textos cursivos y normales es la misma.

Encontré que cuando no hay letra cursiva y tiene que ser renderizada, entonces en el código fuente de TextView, en el objeto TextPaint se establece el parámetro skewX. Su valor es -0.25f.

¿Sabes qué es este parámetro y tal vez cómo calcular los píxeles que faltan en función de este factor skewX?

+0

¿Has encontrado una solución? – Igor

Respuesta

0

Puede usar un espacio delgado "\u2009" para medir el texto. Luego córtelo antes de dibujarlo. Alinear el centro de texto podría dar el mejor resultado.