¿Cómo obtener el ancho de la cadena en Android?

Me gustaría obtener la altura también si es posible.

Puede utilizar el getTextBounds(String text, int start, int end, Rect bounds) de un objeto Paint. Puede utilizar el objeto de pintura proporcionado por un TextView o crear uno con la apariencia de texto deseada.

Utilizando una vista de texto, puede hacer lo siguiente:

 Rect bounds = new Rect(); Paint textPaint = textView.getPaint(); textPaint.getTextBounds(text, 0, text.length(), bounds); int height = bounds.height(); int width = bounds.width(); 

Si sólo necesita el ancho que puede utilizar:

 float width = paint.measureText(string); 

http://developer.android.com/reference/android/graphics/Paint.html#measureText(java.lang.String)

Hay dos medidas de ancho diferentes para un texto. Uno es el número de píxeles que se ha dibujado en el ancho, el otro es el número de 'píxeles' el cursor debe avanzar después de dibujar el texto.

Paint.measureText y paint.getTextWidths devuelve el número de píxeles (en flotante) que el cursor debe avanzar después de dibujar la cadena dada. Para el número de píxeles pintados use paint.getTextBounds como se menciona en otra respuesta. Creo que esto se llama el "Avance" de la fuente.

Para algunas fuentes estas dos medidas difieren (mucho), por ejemplo la fuente Black Chancery tiene letras que se extienden más allá de las otras letras (solapamiento) – vea el capitulo 'L'. Use paint.getTextBounds como se menciona en otra respuesta para obtener píxeles pintados.

He medido el ancho de esta manera:

 String str ="Hiren Patel"; Paint paint = new Paint(); paint.setTextSize(20); Typeface typeface = Typeface.createFromAsset(getAssets(), "Helvetica.ttf"); paint.setTypeface(typeface); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); Rect result = new Rect(); paint.getTextBounds(str, 0, str.length(), result); Log.i("Text dimensions", "Width: "+result.width()); 

Esto te ayudaría.

  • Cadena hardcode vs @string en código Java - Android
  • Conversión UTF-8 en Android?
  • Comprobación de cadena nula en android
  • ¿Hay un límite de longitud para String en Android?
  • Android: ¿Cómo puedo obtener la cadena de los recursos con su nombre?
  • ¿Cómo pasar el valor de la cadena separada por coma en la consulta SQL?
  • Android c + + soporte de cadena para to_string, stof, etc
  • ¿Cómo puedo obtener el texto antes y después de la "-" (guión)
  • Uso de HashMap para asignar una cadena e int
  • Android Studio: error: carácter ilegal: '\ u2028'
  • ¿Puedo convertir un Spannable en String en android para cargar un ExpandableListView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.