¿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.

  • Android cómo usar location.distanceTo ()
  • Obtener Null String mientras obtengo datos de EditText en android
  • Leer el archivo As String
  • Acceda a las preferencias compartidas de diferentes actividades (Android)
  • ¿Puedo convertir un Spannable en String en android para cargar un ExpandableListView?
  • Texto de estilo del parámetro en método getString (int resId, Object ... formatArgs)
  • Los identificadores de recursos de Android repentinamente no son definitivos, los campos no se pueden resolver
  • Cuestiones de Android Strings
  • Pasar datos de intención de la actividad a la clase
  • Obtener números de EditText
  • Formato y estilo de un recurso xml + asignar a textview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.