Чтобы нарисовать подчеркивание под TextView в Android
Я хочу нарисовать подчеркивание ниже моего TextView
. Я искал несколько контента, но не смог найти ничего плодотворного.
может кто-нибудь помочь мне здесь?
6 ответов:
есть три способа подчинения текста в TextView.
setPaintFlags(); из TextView
позвольте мне объяснить вам все подходы :
1-й подход
для подчинения текста в TextView вы должны использовать SpannableString
String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0); mTextView.setText(content);
2-й подход
вы можете использовать setPaintFlags метод TextView, чтобы подчеркнуть текст TextView.
например.
mTextView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); mTextView.setText("This text will be underlined");
вы можете ссылаться на константы краски
просто окружите свой текст тегом в строке.xml-файл ресурсов
<string name="your_string"><u>Underlined text</u></string>
и в вашей деятельности/фрагмент
mTextView.setText(R.string.your_string);
для тех, кто все еще смотрит на этот вопрос. Это для гиперссылки, но вы можете изменить его для простого подчеркивания:
создать 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:
<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>
если ваш TextView имеет фиксированную ширину, альтернативным решением может быть создание представления, которое будет выглядеть как подчеркивание и расположить его прямо под вашим 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>