Saltar al contenido

cómo hacer un texto específico en TextView BOLD

Solución:

Si bien puede usar Html.fromHtml (), puede usar un enfoque más nativo que es SpannableStringBuilder, esta publicación puede ser útil.

SpannableStringBuilder str = new SpannableStringBuilder("Your awesome text");
str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), INT_START, INT_END, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView tv=new TextView(context);
tv.setText(str);

Simplemente construya su String en HTML y configúrelo:

String sourceString = "<b>" + id + "</b> " + name; 
mytextview.setText(Html.fromHtml(sourceString));

Primero: no necesita preocuparse por usar el código de rendimiento lento de la respuesta de Raghav Sood.

Segundo: no necesita escribir una función de extensión proporcionada por la respuesta de w3bshark cuando usa Kotlin.

Finalmente: todo lo que necesita hacer es usar la biblioteca Kotlin android-ktx de Google (consulte aquí para encontrar más información y cómo incluirla en su proyecto):

// Suppose id = 1111 and name = neil (just what you want). 
val s = SpannableStringBuilder()
          .bold { append(id) } 
          .append(name)
txtResult.setText(s) 

Produce: 1111 neil


ACTUALIZAR:

Porque creo que puede ayudar a alguien más, así como demostrar hasta dónde puede llegar, aquí hay más casos de uso.

  • Cuando necesite mostrar un texto con algunas partes en azul y cursiva:

    val myCustomizedString = SpannableStringBuilder()
        .color(blueColor, { append("A blue text ") })
        .append("showing that ")
        .italic{ append("it is painless") }
    
  • Cuando necesite mostrar un texto en negrita y cursiva:

        bold { italic { append("Bold and italic") } }
    

En breve, bold, append, color y italic son funciones de extensión para SpannableStringBuilder. Puedes ver otras funciones de extensión en la documentación oficial, desde donde puedes pensar en otras posibilidades.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *