Obtener la altura del texto incluyendo el tamaño de fuente y establecer esa altura
tengo un texto llamado Hello
ahora tengo que aplicar fontsize para esto decir 12 o 18 ahora tan pronto como apliquemos la fuente en el texto aumenta el tamaño del texto.
así que ahora necesito conseguir la altura del texto incluyendo el tamaño de fuente usando la pintura.
- Canvas 'drawLine y drawRect no incluye la posición final?
- Android: ¿qué hace esta bandera Paint: DEV_KERN_TEXT_FLAG?
- ¿Cómo aplicar el color del pincel con puntos en la aplicación Paint android?
- Dibujar mapa de bits girado con anti alias
- Paint.setAntiAlias (false) no tiene efecto?
He intentado con la pintura lo siguiente:
String finalVal ="Hello"; Paint paint = new Paint(); paint.setTextSize(18); paint.setTypeface(Typeface.SANS_SERIF); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); Rect result = new Rect(); // Measure the text rectangle to get the height paint.getTextBounds(finalVal, 0, finalVal.length(), result);
Pero no funciona, por favor ayuda
EDITAR
estoy tratando de establecer la altura de webview dinámicamente basado en el textheight estoy consiguiendo la altura del texto para una sola línea como "Hello"
pero si hay dos líneas en el texto "My name is abc and my dads name is xyz and my moms name is 123" now its not getting the proper text height".
- ¿Definir un estilo de pintura, color, etc en XML?
- Cómo dibujar texto con diferentes trazos y colores de relleno?
- Android: Medir la altura del texto en una lona
- Android cómo dibujar la pintura en mano libre en MapView con superposición?
- Captura de pantalla
- Dibujo sobre lienzo y varios objetos de pintura
- Cómo convertir rgb color a int en java
- Patrón de relleno en Imagen en Android
Prueba de esta manera:
String finalVal ="Hello"; Paint paint = new Paint(); paint.setTextSize(18); paint.setTypeface(Typeface.SANS_SERIF); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); Rect result = new Rect(); paint.getTextBounds(finalVal, 0, finalVal.length(), result); Log.d("WIDTH :", String.valueOf(result.width())); Log.d("HEIGHT :", String.valueOf(result.height()));
Aquí está la salida:
WIDTH : 40 HEIGHT : 14
Si establezco esto,
String finalVal ="My name is abc and my dads name is xyz and my moms name is 123";
Mi resultado es:
WIDTH : 559 HEIGHT : 18
Puede obtener la altura del texto desde FontMetrics . Es constante para una fuente particular y tamaño de fuente, no importa lo que es la cadena de texto actual.
Paint.FontMetrics fm = mTextPaint.getFontMetrics(); float textHeight = fm.descent - fm.ascent; float lineHeight = fm.bottom - fm.top + fm.leading;
Vea mi respuesta más completa aquí . getTextBounds
con FontMetrics
en esa respuesta.
- Confusión sobre el ciclo de vida de la actividad de Android
- ¿Cómo comprobar si MediaPlayer se libera ()?