2011-05-20 12 views
11

Estoy desarrollando una aplicación que muestra información como artes ascii que son muy sensibles al ancho de la fuente. He estado usando una fuente monoespaciada, pero no funciona bien porque hay caracteres amplios (como caracteres chinos y japoneses) en la información y la vista de texto no hace que los caracteres anchos sean exactamente dos veces más anchos que los caracteres normales. Por lo tanto, estoy tratando de ver si es posible modificar el ancho de las fuentes en una vista de texto, o si hay una mejor manera de resolver este problema. ¿Es una buena idea instalar otra fuente monoespacia en mi aplicación? Cualquier aporte es muy apreciado. Gracias.¿Cómo establecer el ancho de la fuente en una vista de texto de Android?

Kevin

Respuesta

27

Usted puede intentar

textView.setTextScaleX(1.5f); 

textView.setTextSize(20); 

textView.setTypeface(Typeface.MONOSPACE); //all characters the same width 

Con estos tres métodos espero se puede establecer el tipo de letra a un aspecto deseable.

+0

Gracias por su respuesta. Parece que setTextScaleX ajusta el ancho de la fuente de acuerdo con su ancho original. Por lo tanto, el ancho es proporcional al ancho original en lugar de hacer que todas las fuentes tengan el mismo ancho. ¿Hay alguna manera de evitar esto? Gracias. – Kevin

+0

Te tengo, revisa mi respuesta editada. – Lumis

+0

El tipo de letra monoespaciado funciona para hacer un ancho igual de char regular. Parece que no funciona para wide char. Para mostrar correctamente el arte ascii, los caracteres anchos deben ser dos veces más anchos que los caracteres normales. Por ejemplo, aaaaaaaa aaaa Estas dos cuerdas deben verse con la misma longitud en un terminal. Wikipedia dice que el tipo de letra monoespacial no es compatible con lenguajes de caracteres amplios, como el chino y el japonés. http://en.wikipedia.org/wiki/Droid_(font) Por lo tanto, no se pudo procesar correctamente el ancho de caracteres anchos, por lo que espero encontrar la manera de establecer el ancho de los caracteres anchos. Gracias. – Kevin

Cuestiones relacionadas