Intereting Posts
Программная клавиатура изменяет размер фонового изображения на Android Разработка Android и Unity 3D Android Build fail – java.lang.IllegalArgumentException: уже добавлено: Lcom / google / api / client / escape / CharEscapers; Проблема со вкусом Android Studio 3.0 Создайте новый проект на Android, Ошибка: Неизвестно Неизвестный хост 'services.gradle.org' Android custom url схема ..? Android: Listview показывает неправильные изображения при прокрутке Как проверить, не является ли текущий поток не основным потоком Как вы прикладываете эффект реверберации к данным AudioRecord / PCM и сохраняете их в файле? Определить, является ли TextView в ListView эллипсированным Android 5.0 Datepicker в scrollview не работает (без прокрутки месяцев) Просмотр личных файлов, созданных приложением android Групповое тестирование с Android-залпом Android SeekBar для контроля прогресса MediaPlayer Android: HttpsUrlConnection с аутентификатором для базовой проверки подлинности итерации навсегда, когда пароль неверен (на ответ 401)

Чтобы нарисовать подчеркивание под TextView на Android

Я хочу нарисовать подчеркивание ниже моего TextView . Я искал несколько материалов, но не мог найти ничего полезного.

Может ли кто-нибудь помочь мне здесь?

Solutions Collecting From Web of "Чтобы нарисовать подчеркивание под TextView на Android"

Существует три способа подрыва текста в TextView.

  1. SpannableString

  2. setPaintFlags (); TextView

  3. Html.fromHtml ();

Позвольте мне объяснить вам все подходы:

1-й подход

Для подрыва текста в TextView вы должны использовать SpannableString

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

Второй подход

Вы можете использовать метод SetPaintFlags для TextView, чтобы подчеркнуть текст TextView.

Напр.

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

Вы можете ссылаться на константы класса Paint, если хотите нанести удар по тексту.

Третий подход

Используйте Html.fromHtml(htmlString);

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

ИЛИ

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

Просто окружайте текст тегом <u> в файле ресурсов string.xml

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

И в вашей деятельности / фрагменте

 mTextView.setText(R.string.your_string); 

Его работы для меня.

 tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG); 

Для тех, кто все еще смотрит на это querstion. Это для гиперссылки, но вы можете изменить ее для простого подчеркивания:

Создайте drawable (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> 

Создайте новый стиль:

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

Затем используйте этот стиль в TextView:

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

Если ваш TextView имеет фиксированную ширину, альтернативным решением может быть создание View, который будет выглядеть как подчеркивание и расположить его прямо под вашим 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> 1 <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>