আমি আমার নীচের আন্ডারলাইন আঁকতে চাই TextView
। আমি কয়েকটি সামগ্রী অনুসন্ধান করেছি তবে ফলপ্রসূ কিছু খুঁজে পেলাম না।
কেউ কি আমাকে এখানে সাহায্য করতে পারেন?
আমি আমার নীচের আন্ডারলাইন আঁকতে চাই TextView
। আমি কয়েকটি সামগ্রী অনুসন্ধান করেছি তবে ফলপ্রসূ কিছু খুঁজে পেলাম না।
কেউ কি আমাকে এখানে সাহায্য করতে পারেন?
উত্তর:
টেক্সটভিউতে পাঠ্যটিকে আন্ডারলাইং করার জন্য তিনটি উপায় রয়েছে।
setPaintFlags (); টেক্সটভিউ এর
আমাকে আপনার সমস্ত পদ্ধতির ব্যাখ্যা করতে দিন:
1 ম পন্থা
টেক্সটভিউতে পাঠ্যকে আন্ডারলাইনের জন্য আপনাকে স্প্যানিয়েবল স্ট্রিং ব্যবহার করতে হবে
String udata="Underlined Text";
SpannableString content = new SpannableString(udata);
content.setSpan(new UnderlineSpan(), 0, udata.length(), 0);
mTextView.setText(content);
2 য় পন্থা
টেক্সটভিউয়ের পাঠ্যটি আন্ডারলাইন করতে আপনি টেক্সটভিউয়ের সেটপেইন্টফ্ল্যাজ পদ্ধতি ব্যবহার করতে পারেন ।
যেমন যেমন
mTextView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
mTextView.setText("This text will be underlined");
আপনি যদি লেখার মাধ্যমে স্ট্রাইক করতে চান তবে আপনি পেইন্ট শ্রেণীর ধ্রুবকগুলি উল্লেখ করতে পারেন।
3 য় পন্থা
ব্যবহার করা 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
স্ট্রাইকথ্রু ইফেক্ট তৈরি করতে আপনি পাঠ্যে একটি ব্যবহার করতে পারেন। :)
আপনার স্ট্রিং.এক্সএমএল রিসোর্স ফাইলটিতে <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
ফলে ধারন সরানো হচ্ছে।
যে কারও জন্য এখনও এই অনুসন্ধানের দিকে তাকিয়ে আছে। এটি একটি হাইপারলিংকের জন্য তবে আপনি এটি কেবল একটি সরল আন্ডারলাইনের জন্য সংশোধন করতে পারেন:
একটি অঙ্কনযোগ্য (হাইপারলিঙ্ক_উন্ডারলাইন.এক্সএমএল) তৈরি করুন:
<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
android:layout_height="wrap_content"
android:layout_width="wrap_content"
local:MvxBind="Text Id; Click ShowJobInfoCommand"
style="@style/HyperLink"/>
যদি আপনার টেক্সটভিউয়ের নির্দিষ্ট প্রস্থ রয়েছে, বিকল্প সমাধানটি এমন একটি ভিউ তৈরি করা যেতে পারে যা একটি আন্ডারলাইন হিসাবে দেখায় এবং এটি আপনার টেক্সটভিউয়ের ঠিক নীচে রাখে।
<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 টি আশ্চর্যজনক উপায় - কোটলিন / জাভা এবং এক্সএমএল
String html = "<u>Underline using Html.fromHtml()</u>";
textview.setText(Html.fromHtml(html));
তবে এইচটিএমএল.ফর্মএইচটিএমএল (স্ট্রিং রিসোর্স) এপিআই 24 এ অবমূল্যায়ন করা হয়েছিল।
সুতরাং আপনি সর্বশেষতম অ্যান্ড্রয়েড সমর্থন লাইব্রেরি androidx.core.text.HtmlCompat ব্যবহার করতে পারেন । তার আগে, আপনাকে আপনার প্রকল্পের নির্ভরতা অন্তর্ভুক্ত করতে হবে।
`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));
স্ট্রিং.এক্সএমএল ব্যবহার করে ,
<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()");
স্প্যানিয়েবল স্ট্রিং ব্যবহার করে
`String content1 = "3.1 Underline using SpannableString";
SpannableString spannableString1 = new SpannableString(content1);
spannableString1.setSpan(new UnderlineSpan(), 0, content1.length(), 0);
textview31.setText(spannableString1);`