texto subrayar studio programacion móviles desarrollo curso boton aplicaciones android textview underline

programacion - subrayar texto boton android studio



Para dibujar un subrayado debajo de la vista de texto en Android (6)

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

¿Puede alguien ayudarme aquí?


Funciona para mí

tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);


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="<u>This text will be underlined</u>"; mTextView.setText(Html.fromHtml(htmlString));

O

txtView.setText(Html.fromHtml("<u>underlined</u> text"));


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):

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="-10dp" android:left="-10dp" android:right="-10dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <stroke android:width="2dp" android:color="#3498db"/> </shape> </item> </layer-list>

Crea un nuevo estilo:

<style name="Hyperlink"> <item name="android:textColor">#3498db</item> <item name="android:background">@drawable/hyperlink_underline</item> </style>

Luego usa este estilo en tu TextView:

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" local:MvxBind="Text Id; Click ShowJobInfoCommand" style="@style/HyperLink"/>


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.

<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/myTextView" android:layout_width="20dp" android:layout_height="wrap_content"/> <View android:layout_width="20dp" android:layout_height="1dp" android:layout_below="@+id/myTextView" android:background="#CCCCCC"/> </RelativeLayout>


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

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="-5dp" android:right="-5dp" android:top="-5dp"> <shape> <stroke android:width="1.5dp" android:color="@color/colorAccent" /> </shape> </item> </layer-list>


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

<string name="your_string"><u>Underlined text</u></string>

y en tu Actividad / Fragmento

mTextView.setText(R.string.your_string);