Para dibujar un subrayado debajo de la vista de texto en Android

Quiero dibujar el subrayado debajo de mi TextView . He buscado algunos contenidos pero no he podido encontrar nada fructífero.

¿Puede alguien ayudarme aquí?

Hay tres formas de subrayar el texto en TextView.

  1. SpannableString

  2. setPaintFlags (); de TextView

  3. Html.fromHtml ();

Déjame explicarte todos los enfoques:

Primer enfoque

Para reforzar el texto en TextView debes usar SpannableString

 String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0); mTextView.setText(content); 

Segundo enfoque

Puede utilizar el método setPaintFlags de TextView para subrayar el texto de TextView.

Por ej.

 mTextView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); mTextView.setText("This text will be underlined"); 

Puede referir constantes de la clase Paint si desea atacar el texto.

3er enfoque

Hacer uso de Html.fromHtml(htmlString);

 String htmlString="This text will be underlined"; mTextView.setText(Html.fromHtml(htmlString)); 

O

 txtView.setText(Html.fromHtml("underlined text")); 

simplemente rodee su texto con la etiqueta en su archivo de recursos string.xml

 Underlined text 

y en tu Actividad / Fragmento

 mTextView.setText(R.string.your_string); 

Funciona para mí

 tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG); 

Para cualquiera que todavía esté mirando esta búsqueda. Esto es para un hipervínculo, pero puede modificarlo simplemente por un subrayado:

Cree un dibujable (hyperlink_underline.xml):

         

Crea un nuevo estilo:

  

Luego usa este estilo en tu TextView:

  

Una solución simple y sostenible es crear una lista de capas y convertirla en el fondo de su TextView:

        

Si su TextView tiene un ancho fijo, una solución alternativa puede ser crear una Vista que se vea como un subrayado y colocarla justo debajo de su TextView.