Android TextView ¿Qué hace eleganteTextHeight? (API 21)

He encontrado el atributo elegantTextHeight para un TextView, pero no veo ningún cambio cuando juego con él.

¿Qué hace? ¿Y cómo lo uso?

Respuesta corta : Es un método para desactivar la optimización de "compactación de fuentes" para algunos idiomas. Y si usted no sabe lo que estoy diciendo, probablemente es porque su lenguaje no tiene la "compactación de la fuente" de optimización, lo que significa que usted no tiene que preocuparse por ella.

Respuesta larga :

Echa un vistazo al documento primero:

Establece el indicador de métrica de altura elegante de la pintura. Esta configuración selecciona variantes de fuente que no se han compactado para ajustar métricas verticales basadas en latín y también aumenta los límites superior e inferior para proporcionar más espacio.

Qué significa eso?

En algunos idiomas, algunos glifos podrían ser muy altos. Me gusta esto:

Tailandés latino

(Esos son personajes que elegí al azar del alfabeto tailandés , si tienes curiosidad).

Mira los textos de la izquierda. Muy alto, ¿eh? Pero el hecho es que no es lo suficientemente alto. Debería haber sido más alto.

Las fuentes suelen tener 2 variantes para los idiomas de "texto alto": una variante original y una variante compactada. La versión compacta es para asegurar que los textos no se vean extraños cuando los textos de diferentes lenguas se ponen juntos. La versión predeterminada (al menos en Paint de Android) es la versión compactada, como se muestra en la captura de pantalla anterior.

Pero a veces se puede necesitar la variante original. Si lo necesita, agregue esta línea:

paint.setElegantTextHeight(true);

Entonces sus textos serán dibujados con la variante original (elegante). Variante original

Los textos tailandeses se hacen más altos, ¿ves?

Por lo tanto, las cosas están claras ahora: algunos idiomas podrían tener glifos muy altos, y se compactan de forma predeterminada. Y setElegantTextHeight(true) :

  1. Cambie a la variante original, no compactada, elegante para dibujar textos.
  2. Aumente los límites superior e inferior para proporcionar más espacio para los textos más altos.

De los documentos:

Establece el indicador de métrica de altura elegante de la pintura. Esta configuración selecciona variantes de fuente que no se han compactado para ajustar métricas verticales basadas en latín y también aumenta los límites superior e inferior para proporcionar más espacio.

  • Dibujar línea a través de texto en textview
  • ¿Cómo configuro LAYOUTGRAVITY para un TextView en Android?
  • ¿Cómo alinear las vistas de Android TextView?
  • ScrollView no muestra su contenido correctamente en versiones inferiores de android
  • Android TextView DrawableTint en dispositivos pre v23
  • Espacio de ancho cero con charecters especiales
  • División de texto a través de múltiples TextViews / Fragmentos con ViewPager
  • Cómo establecer el color de UnderlineSpan?
  • Problema de base de datos SQLite en TextView
  • Autosizing de TextView no funciona (Android O)
  • El tamaño de fuente de TextView en la aplicación Android cambia al cambiar el tamaño de la fuente de la configuración nativa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.