Cómo obtener ascender / descender y altura x para una fuente determinada
Necesito obtener un ascender / descensor y x-altura ..
Usando código siguiente puedo encontrar el descensor y la altura total:
- Excepción de puntero nulo al importar una fuente en android
- Fuentes personalizadas, puntos suspensivos en MultiLine TextViews, glifos y glitches
- Cómo configurar Gujarati palabra conjunta en Android?
- Android conjunto Roboto fuente con negrita, cursiva, regular, ... (algo así como familia de fuentes personalizadas)
- La página Web Gujarati no se muestra perfecta en la vista Web
descender_height = paint.descent(); total_height = descender_height - paint.ascent(); //ascender = ?; is this always equal to descender height? //x_height = ?; total_height - 2*descender_height ?
Gracias
- Fuente personalizada para la vista web
- Error al configurar el estilo de texto personalizado en mi aplicación
- Cómo aumentar el tamaño de la fuente NumberPicker Android 6.0?
- Recurso de fuente en Android
- Cómo cambiar los estilos de fuente y la cara en Android?
- ¿Cómo agregar fuentes para diferentes pesos de fuente para el proyecto reactivo-androide?
- Cómo utilizar Roboto condesed (o fino) fuente en ICS +?
- Android Studio cambiar comentarios fuente
Yo creo que la altura ascender y descender sería típicamente la misma, pero yo no dependería de ella para cada fuente. Realmente no veo una manera directa de llegar a la x-altura, pero un truco que podría utilizar sería algo como el siguiente. Además, para la altura total, ¿está hablando de la distancia absoluta desde el ascensor más alto hasta el descensor más bajo? También he incluido algo para eso a continuación. No lo he probado yo mismo, pero debería funcionar (pero avísame si estoy malinterpretando algo que has dicho):
// Assuming TextPaint/Paint tp; Rect bounds; // this will just retrieve the bounding rect for 'x' tp.getTextBounds("x", 0, 1, bounds); int xHeight = bounds.height(); Paint.FontMetrics metrics = tp.getFontMetrics(); int totalHeight = metrics.top - metrics.bottom;
Esto es lo que funcionó para mí:
Paint.FontMetrics fm = paint.getFontMetrics(); int totalHeight = (int)(fm.bottom - fm.top + .5f);
- Realizar y supervisar llamadas telefónicas dentro de la brecha telefónica
- Android Studio 0.3.1, appcompat-v7 y el proyecto de la biblioteca android siempre generan IllegalStateException