decir que tengo un TextView de un tamaño determinado (en realidad no importa lo que ... fill_parent, 20dip, lo que sea). ¿Es posible decirle al texto que se encoja/aumente de tamaño para que se ajuste al espacio disponible sin hacer muchas operaciones matemáticas?Escala Tamaño del texto en un TextView
Respuesta
No es que yo sepa, lo siento.
Bueno, es un poco más simple que "muchas matemáticas complejas", pero hay una solución de corte que uso para esto que es factible si el ancho del texto no está muy lejos del ancho de su vista de texto.
// HACK to adjust text width
final int INITIAL_TEXTSIZE = 15;
final int TEXTVIEW_WIDTH = textviewBackground.getIntrinsicWidth(); // I use the background image to find the width, but you can use a fixed value or whatever other method you prefer.
final String text = ...;
textView.setText(text);
int size = INITIAL_TEXTSIZE;
while(textview.getPaint().measureText(text) > TEXTVIEW_WIDTH)
textview.setTextSize(--size);
Si la anchura de su texto puede ser significativamente diferente que el ancho de la Vista de Texto, tal vez sería mejor emplear una búsqueda binaria en lugar de una búsqueda lineal para encontrar el tamaño de la fuente correcta.
no decir que esto es una solución ideal, pero es uno conveniente si no a menudo necesita ajustar su textsize. Si necesita ajustar con frecuencia su tamaño de texto, podría ser mejor hacer algunas matemáticas complejas.
+1 Muy buena respuesta. Debe ser la OMI aceptada. –
U puede calcular el valor del tamaño de la fuente de la idea para un TextView. Ese es el tamaño de fuente que lo llenará sin ser demasiado grande. La fórmula es:
fontSize = (TextView Height) * (width DPI/height DPI)/(Screen Width * Screen Height);
La anchura y la altura DPI pueden ser adquiridos reemplazando el método onConfigurationChanged en su actividad, y el uso de newConfig.screenWidthDp y newConfig.screenHeightDp.
El tamaño de la pantalla en píxeles puede ser adquirida mediante la siguiente función auxiliar
// Get Screen Size
static public Point getScreenSize(Activity aActivity)
{
Display display = aActivity.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size;
}
acabo de calcular este valor, según sea necesario (en onConfigurationChanged) y empujarlo hasta cierto clase auxiliar estática. Entonces, cuando un TextView necesita determinar qué tamaño de fuente usar, lo saca de esta clase.
Funciona, pero podría no ser la solución más sencilla.
inútil. No toma en cuenta la longitud de los caracteres. – AndroidDev
Probé casi todo lo anterior y la mayoría falló, incluso la superior. El más simple y efectivo que encontré fue de Emmby, pero descubrí que tenía que establecer el tamaño de texto inicial. Aquí es una mejora en su donde no es necesario especificar cualquier textsize en absoluto:
final String text = "HELP";
TextView tvFlash = (TextView) findViewById(R.id.tvFlash);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
tvFlash.setText(text);
tvFlash.setTextSize(TypedValue.COMPLEX_UNIT_PX, 1);
int size = 1;
do
{
float textWidth = tvFlash.getPaint().measureText(text);
if (textWidth < width)
tvFlash.setTextSize(++size);
else
{
tvFlash.setTextSize(--size);
break;
}
}while(true);
- 1. Escala automática de texto Tamaño
- 2. animación del tamaño de texto de TextView
- 3. Android TextView setTextSize aumenta incorrectamente el tamaño del texto
- 4. centrado de texto de gran tamaño de fuente en TextView
- 5. Calcular el tamaño del texto de acuerdo con el ancho del área de texto
- 6. ¿Cómo cambiar el tamaño del texto según el tamaño del widget en una vista de texto en un appwidget?
- 7. ¿Cómo escalar/cambiar el tamaño del texto para que se ajuste a un TextView?
- 8. ¿Escala el texto en una vista para caber?
- 9. Incluir un TextView y anular el texto
- 10. Escape "" en Texto en TextView
- 11. PhpStorm tamaño del texto
- 12. Justificar texto en TextView Android
- 13. Tamaño del texto de un Spinner
- 14. ¿Hay alguna manera de ocultar texto en un TextView?
- 15. TextView: configurar el tamaño del texto mediante programación no parece funcionar
- 16. Escala CCSprite al tamaño exacto
- 17. Color del texto en TextView cambia de color
- 18. Lea un archivo de texto grande en Textview
- 19. midiendo texto en lienzo a escala
- 20. cómo cambiar texto en Android TextView
- 21. cómo agregar borde a un texto en textview android
- 22. cómo ajustar texto en textview en android
- 23. Cambiar el tamaño del texto en un UIButton
- 24. Cómo tener un TextView circular
- 25. TextView android: Cambiar el color del texto al hacer clic
- 26. Copiar texto de TextView en Android
- 27. Android: texto dinámico subrayado estáticamente en TextView
- 28. Resaltar texto en TextView o WebView
- 29. Android: texto de desplazamiento automático en TextView
- 30. ¿Cómo insertar texto "<<" en TextView?
Por favor ver la respuesta aquí, funciona bastante bien: [enter Descripción enlace aquí] [1] [1]: http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds – AllDayAmazing