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:
- Recurso de fuente en Android
- La biblioteca de caligrafía de chrisjenx no funciona
- Fuente Arial para texto en Android
- La fuente personalizada da un glifo incorrecto para ciertas combinaciones de letras en Android
- Cómo establecer una fuente personalizada en el título de ActionBar?
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
- ¿Son las versiones libremente disponibles de Roboto que se han aumentado con los glifos del emoji?
- Indic-text-renderer usando harfbuzz y freetype
- Cómo obtener el contexto en getView del adaptador para listview
- Fuente predeterminada en Jelly Bean 4.2.2?
- ¿Cómo mostrar el texto vectorizado usando libgdx?
- Uso de la fuente personalizada en Android TextView utilizando xml
- ¿Cómo hacer cursivo el trabajo de TextView en la vista de diseño gráfico de Eclipse? Incluso cuelga el PC
- Problema al usar una fuente personalizada - "no se puede hacer el tipo de letra nativo"
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