在Android中的TextView下绘制下划线
我想在我的TextView下面画下划线。 我search了一些内容,但没有find任何有用的东西。 
任何人都可以请帮我在这里?
在TextView中,有三种方法可以使文本变成下层。
- 
SpannableString 
- 
setPaintFlags(); 的TextView 
- 
Html.fromHtml(); 
让我解释一下所有的方法:
第一种方法
对于在TextView中的文本,你必须使用SpannableString
 String udata="Underlined Text"; SpannableString content = new SpannableString(udata); content.setSpan(new UnderlineSpan(), 0, udata.length(), 0); mTextView.setText(content); 
第二种方法
您可以使用TextView的setPaintFlags方法来强调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")); 
只需在你的string.xml资源文件中用<u>标记环绕你的文本即可
 <string name="your_string"><u>Underlined text</u></string> 
并在你的活动/片段
 mTextView.setText(R.string.your_string); 
它的作品给我。
 tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG); 
对于任何人仍然在看这个querstion。 这是一个超链接,但你可以修改它只是一个普通的下划线:
创build一个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> 
创build一个新的风格:
 <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具有固定的宽度,替代解决scheme可以创build一个视图,看起来像一个下划线,并将其放置在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>