Android에서 TextView 아래에 밑줄을 그리려면
아래에 밑줄을 그리고 싶습니다 TextView
. 몇 가지 콘텐츠를 검색했지만 유익한 내용을 찾지 못했습니다.
누구든지 여기서 나를 도울 수 있습니까?
TextView에서 텍스트에 밑줄을 긋는 세 가지 방법이 있습니다.
모든 접근 방식을 설명하겠습니다.
첫 번째 접근
TextView의 텍스트를 밑에 두려면 SpannableString 을 사용해야 합니다.
String udata="Underlined Text";
SpannableString content = new SpannableString(udata);
content.setSpan(new UnderlineSpan(), 0, udata.length(), 0);
mTextView.setText(content);
2 차 접근
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);
아직이 질문을보고있는 사람을 위해. 이것은 하이퍼 링크 용이지만 일반 밑줄로만 수정할 수 있습니다.
드로어 블 (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>
Android에서 TextView에 밑줄을 긋는 5 가지 놀라운 방법-Kotlin / Java & XML
String html = "<u>Underline using Html.fromHtml()</u>"; textview.setText(Html.fromHtml(html));
그러나 Html.fromHtml (String resource) 는 API 24에서 더 이상 사용되지 않습니다.
So you can use the latest android support library androidx.core.text.HtmlCompat. Before that, you need to include the dependency in your project.
`implementation 'androidx.core:core:1.0.1'`
String html = "<u> 1.1 Underline using HtmlCompat.fromHtml()</u>"; //underline textview using HtmlCompat.fromHtml() method textview11.setText(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY));
Using strings.xml,
<string name="underline_text">1.3 <u>Underline using HtmlCompat.fromHtml() and string resource</u></string>
textview13.setText(HtmlCompat.fromHtml(getString(R.string.underline_text), HtmlCompat.FROM_HTML_MODE_LEGACY));
using PaintFlags
textview2.setPaintFlags(textview2.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); textview2.setText("2. Underline using setPaintFlags()");
using SpannableString
`String content1 = "3.1 Underline using SpannableString";
SpannableString spannableString1 = new SpannableString(content1);
spannableString1.setSpan(new UnderlineSpan(), 0, content1.length(), 0);
textview31.setText(spannableString1);`
참고URL : https://stackoverflow.com/questions/8033316/to-draw-an-underline-below-the-textview-in-android
'developer tip' 카테고리의 다른 글
Android Studio : Android SDK 소스를 연결하는 방법은 무엇입니까? (0) | 2020.08.08 |
---|---|
Git : 분기 된 로컬 브랜치의 모든 변경 사항 취소 (0) | 2020.08.08 |
.NET / Mono 또는 Java가 크로스 플랫폼 개발에 더 적합한 선택입니까? (0) | 2020.08.08 |
(x == 0 || x == 1)을 단일 작업으로 단순화 할 수 있습니까? (0) | 2020.08.08 |
세 번째 열을 마지막 열로 인쇄하는 방법은 무엇입니까? (0) | 2020.08.08 |