El texto de TextView se reduce al ancho dado

Tengo un campo textview en mi actividad. Su tamaño de fuente es 16. Su texto se establece a través de código. Supongamos que si tengo un texto grande, debería reducir estos datos (es decir, reducir el tamaño de fuente) en lugar de ir a la siguiente línea. ¿Cómo puedo hacerlo?

<TextView android:id="@+id/textView" android:layout_width="400dp" android:layout_height="wrap_content" android:text="" android:textSize="16sp" /> 

Lo conseguí usando el siguiente método que creé de acuerdo a mi requisito.

 private void autoScaleTextViewTextToHeight(TextView tv) { String s = tv.getText().toString(); float currentWidth = tv.getPaint().measureText(s); float phoneDensity = this.getResources().getDisplayMetrics().density; while(currentWidth > (REQUIRED_WIDTH * phoneDensity)) { tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv.getTextSize() - 1.0f); currentWidth = tv.getPaint().measureText(s); } } 

El siguiente método toma el parámetro TextView como y ajusta el tamaño de su fuente de acuerdo con el ancho de TextView

 private void adjustTextSize(TextView tv) { float size = tv.getPaint().getTextSize(); TextPaint textPaint = tv.getPaint(); float stringWidth = textPaint.measureText(tv.getText().toString()); int textViewWidth = tv.getWidth(); if(textViewWidth > stringWidth) { float percent = (textViewWidth / stringWidth); textPaint.setTextSize(size*percent); } } 

Espero que esto ayude.

no hay manera agradable. lo que puede hacer es calcular el tamaño del texto que va a colocar en este TextView y volver a ajustar el tamaño de la fuente hasta que encaje en el área de destino. para calc uso de tamaño Paint.getTextBounds ().

Lo he hecho muy similar por dibujar sobre un lienzo. requries un bucle que disminuye el fontsize hasta que el tamaño calculado es adecuado.

  • android uso de etiquetas html en textview mediante programación
  • android TextView setText no funciona
  • Números en la cadena que se pueden llamar
  • TextView StringIndexOutOfBoundsException y IndexOutOfBoundsException se bloquea en processToSupportEmoji
  • Android - Desplazamiento de TextView
  • ¿Cómo evitar que TextView.getLayout () devuelva null?
  • ¿Por qué String.format () no funciona en Android TextView?
  • Android desaparece porciones de TextViews
  • Cambiar el tamaño de TextView mediante programación
  • Android - divisor entre elementos en disposición vertical
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.