¿Cómo obtener el ancho de la cadena en Android?
Me gustaría obtener la altura también si es posible.
- Comparación de cadenas - Android
- ¿No puedo hacer un getResources.getString dinámicamente?
- Android parcelable referenciando otra dependencia circular parcelable
- Android / Java Append String + int
- JSON VS simple manipulación de cadenas para analizar HttpRequest en Android
- ¿Cómo se agrega un carácter de nueva línea en una cadena en índices específicos?
- ¿Qué es "String ..." en java?
- Byte para encadenar androide
- ¿Por qué las cadenas de referencia de un archivo de recursos externos en lugar de codificación en la disposición de Android XML?
- Cómo configurar el texto introducido en Android Studio 'EditText' a una variable?
- No se puede obtener String.split () para funcionar como se esperaba en android
- Validación de un número de celda en Android
- "El prefijo" xliff "para el elemento" xliff: g "no está enlazado"
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.
- ¿Cómo puedo mostrar un documento PDF en una vista Web?
- ¿Cuál es la forma más fácil de obtener el día actual de la semana en Android?