Estoy usando una fuente .ttf personalizada en mi aplicación de Android. Me carga de la manera habitual:La fuente personalizada en Android se representa de manera diferente en diferentes API
myTypeface = Typeface.createFromAsset(getAssets(), "myTypeface.ttf");
entonces asignar mi tipo de letra dentro de mi actividad ... cosas bastante sencillo:
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setTextSize(12);
tv.setTypeface(App.myTypeface);
El problema que estoy corriendo en es que en algunos dispositivos utilizando más tarde API (lo he notado específicamente en un emulador para Asus Transformer), el texto parece un poco más audaz, menos uniforme en ancho y más desordenado en alineación vertical. En esta última parte, quiero decir que algunos personajes se colocan verticalmente un poco más arriba o más abajo que otros, lo que le da un toque de montaña rusa al texto.
Considere las siguientes capturas de pantalla
Esto es texto representado en un emulador con la misma resolución y ppp como un transformador, pero utilizando nivel de API de Google 8.
Parece bastante estándar, ¿derecho?
Consideremos ahora el texto representado en un emulador con la misma resolución y ppp, pero utilizando Google API de nivel 15:
Al principio, el texto puede ser similar, aunque es posible que note que parece una un poco más audaz. Sin embargo, mira la "c" en "rápido". Notarás que está más abajo y es más alto que la "c" en la primera representación. También observará que si mira la parte inferior de los caracteres en la palabra "rápido", no están alineados en la parte inferior.
Estos problemas pueden parecer pequeños, pero en pantallas con mucho texto, empieza a parecer poco profesional.
¿Alguien ha visto esto o tiene alguna explicación? Me encantaría que el texto se vea uniforme en API posteriores.
¡Muchas gracias por su tiempo!
Definitivamente se están realizando algunas representaciones de fuentes diferentes. Podría ser antialiasing, sugerencia apagada, posiblemente. ¿Podría ver cuál es el valor de 'textView.getPaintFlags()' para el nivel 8 de API, y el nivel 15 de API, y editarlo? (@me para recibir una notificación y voy a echar un vistazo) – kcoppock
@kcoppock Gracias por la respuesta. getPaintFlags() devuelve 257 para ambas API. –
Esto se ve similar, o tal vez un duplicado de http://stackoverflow.com/questions/9036184/custom-font-rendering-on-android-4-0-ice-cream-sandwich. Nunca fue realmente respondida. – HandlerExploit