मैं अपने नीचे की रेखा खींचना चाहता हूं TextView
। मैंने कुछ सामग्री खोजी है, लेकिन कुछ भी फलदायी नहीं पाया।
किसी को भी कृपया मेरी मदद कर सकते हैं यहाँ?
मैं अपने नीचे की रेखा खींचना चाहता हूं TextView
। मैंने कुछ सामग्री खोजी है, लेकिन कुछ भी फलदायी नहीं पाया।
किसी को भी कृपया मेरी मदद कर सकते हैं यहाँ?
जवाबों:
TextView में टेक्स्ट को अंडरलाइन करने के तीन तरीके हैं।
setPaintFlags (); पाठ का दृश्य
मैं आपको सभी दृष्टिकोण समझाता हूं:
1 दृष्टिकोण
TextView में पाठ को रेखांकित करने के लिए आपको SpannableString का उपयोग करना होगा
String udata="Underlined Text";
SpannableString content = new SpannableString(udata);
content.setSpan(new UnderlineSpan(), 0, udata.length(), 0);
mTextView.setText(content);
दूसरा दृष्टिकोण
आप TextView के पाठ को रेखांकित करने के लिए TextView के setPaintFlags विधि का उपयोग कर सकते हैं ।
उदाहरण के लिए।
mTextView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
mTextView.setText("This text will be underlined");
यदि आप पाठ के माध्यम से हड़ताल करना चाहते हैं तो आप पेंट वर्ग के स्थिरांक का उल्लेख कर सकते हैं ।
तीसरा दृष्टिकोण
उपयोग करना 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"));
Html.fromHtml("<u>This text will be underlined</u>")
, लेकिन मुझे स्वीकार करना होगा कि मैं स्पैनएबलस्ट्रेस का उपयोग करने का बहुत बड़ा प्रशंसक हूं। @ कार्तिक: आप StrikethroughSpan
स्ट्राइकथ्रू प्रभाव बनाने के लिए पाठ पर उपयोग कर सकते हैं। :)
बस अपने string.xml संसाधन फ़ाइल में <u> टैग के साथ अपने पाठ को घेरें
<string name="your_string"><u>Underlined text</u></string>
और आपकी गतिविधि / प्रगति में
mTextView.setText(R.string.your_string);
textView.setText(getString(R.string.text))
<- गलत । सही: textView.setText(getText(R.string.text))
या सिर्फ textView.setText(R.string.text)
। कारण यह beind कि getText()
रिटर्न Spannable
रेखांकन फैला के साथ, लेकिन अगर आप का उपयोग getString()
यह परिवर्तित कर देंगे Spannable
करने के लिए String
जिसके परिणामस्वरूप फैला हटाया जा रहा।
किसी के लिए भी अभी भी इस querstion को देख रहा है। यह हाइपरलिंक के लिए है, लेकिन आप इसे केवल एक सादे रेखा के लिए संशोधित कर सकते हैं:
एक ड्रा करने योग्य (हाइपरलिंक_उंडरलाइन। 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 की चौड़ाई निर्धारित है, तो वैकल्पिक समाधान एक ऐसा व्यू बना सकता है जो अंडरलाइन की तरह दिखाई देगा और इसे आपके 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>
एक सरल और स्थायी समाधान एक परत-सूची बनाना और इसे आपके टेक्स्ट व्यू की पृष्ठभूमि के रूप में बनाना है:
<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>
5 अद्भुत तरीके Android में एक TextView को रेखांकित करने के लिए - Kotlin / Java और XML
String html = "<u>Underline using Html.fromHtml()</u>";
textview.setText(Html.fromHtml(html));
लेकिन Html.fromHtml (स्ट्रिंग संसाधन) एपीआई 24 में को हटा दिया गया था।
तो आप नवीनतम एंड्रॉइड सपोर्ट लाइब्रेरी androidx.core.text.tmlCompat का उपयोग कर सकते हैं । इससे पहले, आपको अपनी परियोजना में निर्भरता को शामिल करने की आवश्यकता है।
`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));
स्ट्रिंग्स का उपयोग करना। 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));
पेंटफ्लैग्स का उपयोग करना
textview2.setPaintFlags(textview2.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
textview2.setText("2. Underline using setPaintFlags()");
SpannableString का उपयोग कर
`String content1 = "3.1 Underline using SpannableString";
SpannableString spannableString1 = new SpannableString(content1);
spannableString1.setSpan(new UnderlineSpan(), 0, content1.length(), 0);
textview31.setText(spannableString1);`