টেক্সটভিউ টেক্সটস্টাইল কীভাবে সেট করা যায় যেমন বোল্ড, ইটালিক


843

TextViewএক্সএমএল লেআউট ব্যবহার না করে জাভা এবং স্টাইল (সাহসী বা তির্যক) কীভাবে সেট করবেন ?

অন্য কথায়, আমার android:textStyleজাভা দিয়ে লিখতে হবে ।

উত্তর:


1884
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);

পূর্ববর্তী টাইপফেস রাখা

textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)

5
শৈলীটি সরাতে টাইপফেস ব্যবহার করা যেতে পারে OR সাধারণ
— ব্রেইস গাবিন

351
যদি আপনি এটি করেন তবে আপনি আগের কোনও টাইপফেস হারাবেন। পূর্ববর্তীটি ধরে রাখতে, পাঠ্য ভিউ.সেটটাইপফেস (টেক্সটভিউ.সেটটাইপফেস (), টাইপফেস। BOLD_ITALIC) এর মতো কিছু করুন;
— লিওকাডিয়োটিন

34
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);এ থেকে গা bold় বা তির্যক স্টাইলিং সরিয়ে ফেলবে না TextView। আপনার এটি ব্যবহার করতে হবে textView.setTypeface(null, Typeface.NORMAL);।
— জ্যারেট মিল্লার্ড

57
পূর্ববর্তী কোনও textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
— টাইপফাইস রাখতে তবে গা bold়

6
ধন্যবাদ @ শনকসি, আপনি আমাকে সঠিক দিকে নির্দেশ করেছেন। আসলে আপনার কেবল দরকার: টেক্সটভিউ.সেটটাইপফেস (টাইপফেস.ক্রিয়েট (টেক্সটভিউ.সেটটাইপফেস (), টাইপফেস.অনরমাল));
— পেড্রোহিডালগো

271

TextViewগা bold় বা তির্যক জন্য এটি চালু করতে চেষ্টা করুন

textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);

14
ঘটনাক্রমে, আপনি যদি কোনও বিদ্যমান টাইপফেস স্টাইলটি সাফ করতে চান তবে আপনাকে আলাদা কিছু করতে হবে, যেমন:tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL));
— গ্রেগ 7gkb

@ greg7gkb tv.setTypeface(null, Typeface.BOLD);এটি কি একই রকম হবে না (বিদ্যমান টাইপফেসের স্টাইলটি সাফ করুন)?
— প্রবস

সেট টাইপফেসে নাল পাস করার অর্থ হ'ল টেক্সটভিউ একটি হার্ড-কোডড ডিফল্ট ব্যবহার করে যা টাইপফেসের আগের সেট থেকে আলাদা হতে পারে।
— গ্রেগ 7gkb

142

প্রোগ্রামেটিক্যালি:

আপনি প্রোগ্রামগতভাবে ব্যবহার করে করতে পারেন setTypeface():

textView.setTypeface(null, Typeface.NORMAL);      // for Normal Text
textView.setTypeface(null, Typeface.BOLD);        // for Bold only
textView.setTypeface(null, Typeface.ITALIC);      // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic

এক্সএমএল:

আপনি সরাসরি এক্সএমএল ফাইলটিতে এ জাতীয় <TextView />পছন্দ করতে পারেন:

android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"

11
XML লেআউটটি ব্যবহার না করে কীভাবে এটি করবেন প্রশ্নকর্তা জিজ্ঞাসা করেছিলেন।
— জুলিয়ানসাইমস

6
প্রশ্নটি পরীক্ষা করে দেখুন with in Java and without using XMLএটি অন্যকেও সহায়তা করবে।
— প্রতীক বুটানি

5
হ্যাঁ. আমি গুগলের মাধ্যমে এখানে এসেছি এবং এটি আমাকে কেবল সহায়তা করেছিল। ধন্যবাদ :)
— অতুল

96

আপনার দুটি বিকল্প রয়েছে:

বিকল্প 1 (কেবলমাত্র সাহসী, তির্যক এবং আন্ডারলাইনের জন্য কাজ করে):

String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(Html.fromHtml(s));

বিকল্প 2:

একটি স্প্যানিয়েবল ব্যবহার করুন ; এটি আরও জটিল, তবে আপনি পাঠ্যের বৈশিষ্ট্যগুলিকে গতিশীলভাবে সংশোধন করতে পারেন (কেবল গা bold় / তির্যক নয় রঙও)।


6
typeFaceআপনি পুরো পাঠ্যের জন্য একটি একক শৈলী সেট করতে পারেন সঙ্গে ।
— গ্যাব্রিয়েল নেগুট

2
যখন আমি আমার কাস্টম সারিতে চেষ্টা করছি তখন কেন এটি হচ্ছে না? স্ট্রিং এস 1 = "<b> আপনি এখানে আছেন: </ b>"; ধারক.অ্যাড্রেস = (টেক্সটভিউ) রূপান্তর ভিউ.ফাইন্ডভিউবিআইআইডি (আর.আইডি.এডড্রেস_টেক্সট_ভিউ); ধারক.এড্রেস.সেটেক্সট (এইচটিএমএল.ফ্রমএইচটিএমএল (এস 1) + ট্র্যাক.সেটএড্রেস ());
— শৈলেন্দ্র মাদদা

2
এই পদ্ধতিটি দুর্দান্ত আংশিক পাঠ্য স্টাইলিং। একটি বৃহত পাঠ্যদর্শনটির ভিতরে একটি উদ্ধৃতি পছন্দ করুন।
— সালেহ এরিকি

1
প্রথম পদ্ধতিটি আমার ক্ষেত্রে প্রাইভেট অকার্যকর ক্রিয়েটেক্সটভিউ (স্ট্রিং শিরোনাম, স্ট্রিং টেক্সট) কাজ করে না {টেক্সটভিউ = নতুন টেক্সটভিউ (এটি); textView.setTextSize (17); TextView.setText (Html.fromHtml ("<b>" + শিরোনাম + "</ b>") + ":" + পাঠ্য); }
— গ্যারিওনডেম

1
লেআউট পুনর্বিবেচনার কারণে যদি পাঠ্য বড় হয় তবে স্প্যানিয়েবল এবং থেকে এইচটিএমএল বিকল্পগুলি টাইপিং / সেটটেক্সট কমিয়ে দিতে পারে। আপনার যদি অন্য পদ্ধতি উপলব্ধ থাকে তবে তা এড়িয়ে চলুন।
— ইউজিন কার্তোয়েভ

42

প্রোগ্রামেটিক্যালি:

আপনি setTypeface()পদ্ধতিটি পদ্ধতিতে ব্যবহার করে করতে পারেন :

ডিফল্ট টাইপফেসের জন্য নীচে কোড রয়েছে

textView.setTypeface(null, Typeface.NORMAL);      // for Normal Text
textView.setTypeface(null, Typeface.BOLD);        // for Bold only
textView.setTypeface(null, Typeface.ITALIC);      // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic

এবং আপনি যদি কাস্টম টাইপফেস সেট করতে চান :

textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);      // for Normal Text
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);        // for Bold only
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);      // for Italic
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); // for Bold and Italic

এক্সএমএল:

আপনি সরাসরি এক্সএমএল ফাইলটিতে এটি সেট করতে পারেন <TextView />:

android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"

অথবা আপনি আপনার ফেভার ফন্ট সেট করতে পারেন (সম্পদ থেকে)। আরও তথ্যের জন্য লিঙ্ক দেখুন


14
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);

এখন textviewবৈশিষ্ট্য সেট করুন ..

text.setTypeface(null, Typeface.BOLD);  //-- for only bold the text
text.setTypeface(null, Typeface.BOLD_ITALIC);  //-- for  bold & italic the text
text.setTypeface(null, Typeface.ITALIC);  // -- for  italic the text

11

আপনি যদি পাঠ্যকে সাহসী করতে চান তবেই । এই বিন্যাসটি পাঠ্য প্রদর্শনের বৈশিষ্ট্যে আপনার বিন্যাসে লিখুন

android:textStyle="bold"


10

এটা হবে

yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);

এবং ইটালিকটি প্রতিস্থাপনের Typeface.DEFAULT_BOLDসাথে থাকতে সক্ষম হওয়া উচিত Typeface.DEFAULT_ITALC।

এটি কীভাবে কাজ করে তা আমাকে জানান।


10

TextView জাভা কোড দ্বারা আপনার স্টাইল সেট করতে চেষ্টা করুন

txt1.setTypeface(null,Typeface.BOLD_ITALIC);


7

এটা চেষ্টা কর:

textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);


4

এটি করার মানক উপায় হ'ল কাস্টম শৈলীগুলি ব্যবহার করা। অতি-

ইন styles.xmlনিম্নলিখিত যোগ করুন।

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
    <item name="android:textStyle">bold|italic</item>
</style>

এই শৈলীটি আপনার নীচে প্রয়োগ করুন TextView।

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/MyApp.TextAppearance.LoginText" />

4

একটি উপায় আপনি করতে পারেন:

myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);

আপনি যদি পূর্ববর্তী টাইপফেস রাখতে চান এবং এর আগে প্রয়োগকৃতভাবে হারাতে না চান তবে অন্য একটি বিকল্প:

myTextView.setTypeface(textView.getTypeface(), Typeface.NORMAL);      
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD);        
myTextView.setTypeface(textView.getTypeface(), Typeface.ITALIC);      
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); 

4
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);

পূর্ববর্তী টাইপফেস রাখা

textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)


3

শৈলীর নির্বাচনের মানদণ্ডের উপর নির্ভর করে আপনি সবচেয়ে সহজ উপায়টি হ'ল:

String pre = "", post = "";

if(isBold){
    pre += "<b>"; post += "</b>";
}
if(isItalic){
    pre += "<i>"; post += "</i>";
}
if(isUnderline){
    pre += "<u>"; post += "</u>";
}

textView.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
// you can also use it with EidtText
editText.setText(Html.fromHtml(pre + editText.getText().toString()+ post));

2

যেহেতু আমি কাস্টম ফন্টটি ব্যবহার করতে চাই কেবলমাত্র বেশ কয়েকটি উত্তরের সংমিশ্রণটি আমার পক্ষে কাজ করে। একথাও ঠিক যে আমার সেটিংস layout.xmlমত android:textStlyle="italic"AOS দ্বারা উপেক্ষা করা হয়েছে। সুতরাং অবশেষে আমাকে নিম্নরূপটি করতে হয়েছিল: strings.xmlটার্গেট স্ট্রিংয়ে এইভাবে ঘোষণা করা হয়েছিল:

<string name="txt_sign"><i>The information blah blah ...</i></string>

তারপরে কোডে অতিরিক্ত:

TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);

আমি Spannableবিকল্পটি চেষ্টা করি নি (যা আমি কাজটি ধরে নিই) তবে না but

textSign.setText(Html.fromHtml(getString(R.string.txt_sign))) 

কোন প্রভাব ছিল। এছাড়াও যদি আমি সমস্ত একা ছেড়ে দেওয়া italic tagথেকে সরিয়ে ফেলি তবে এর কোনও প্রভাব নেই। কৌতুকপূর্ণ অ্যান্ড্রয়েড ...strings.xmlsetTypeface()


2

এবং এখানে যেমন ব্যাখ্যা করা হয়েছে অ্যান্ড্রয়েড বিকাশকারীদের স্ট্রিং রিসোর্সগুলি যদি আপনার স্টাইলযুক্ত পাঠ্য সংস্থার মধ্যে প্যারামিটার ব্যবহার করতে হয় তবে আপনাকে খোলার বন্ধনীগুলি এড়াতে হবে

<resources>
<string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>
</resources>

এবং কল ফর্ম্যাটএইচটিএমএল (স্ট্রিং)

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);

2

আমার ক্ষেত্রে:

1 - সেট পাঠ্য

2 - সেট টাইপফেস

holder.title.setText(item.nome);
holder.title.setTypeface(null, Typeface.BOLD);

1

এটিই একমাত্র জিনিস যা আমার জন্য ওয়ানপ্লাস 5 টিতে ওয়ানপ্লাস স্লেট on ফন্টের সাথে কনফিগার করা কাজ করেছিল:

textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));

অন্য পদ্ধতিগুলি যখন বোল্ড বা সাধারণ হয় তখন তা রোবোটোর দিকে ফিরে যায়।


1

অ্যান্ড্রয়েডএক্সের সাথে সরলীকৃত ট্যাগগুলি ব্যবহার করার সময় HtmlCompat.fromHtml () ব্যবহারের বিষয়টি বিবেচনা করুন

String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"    
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(HtmlCompat.fromHtml(s, FROM_HTML_MODE_LEGACY));

0

এটির সংজ্ঞা দেওয়া ভাল উপায় styles.xml

<style name="common_txt_style_heading" parent="android:style/Widget.TextView">
        <item name="android:textSize">@dimen/common_txtsize_heading</item>
        <item name="android:textColor">@color/color_black</item>
        <item name="android:textStyle">bold|italic</item>
</style>

এবং এটি আপডেট করুন TextView

  <TextView
     android:id="@+id/txt_userprofile"
     style="@style/common_txt_style_heading"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="@dimen/margin_small"
     android:text="@string/some_heading" />

0
AppCompatTextView text =(AppCompatTextView)findViewById(R.layout.appCompatTextView1);
text.setTypeface(null,Typeface.BOLD);

টাইপফেসটি প্রোগ্রাম্যাটিকভাবে সেট করতে উপরের পদ্ধতিটি ব্যবহার করুন।


0

1) আপনি টাইপফ্রেস দিয়ে সেট করতে পারেন। ২) আপনি সরাসরি স্ট্রিং.এক্সএমএল (আপনার মান ফোল্ডারে) ব্যবহার করতে পারেন 3) আপনি স্ট্রিং করতে পারেন myNewString = "এটি আমার গা bold় পাঠ্য এটি আমার তির্যক স্ট্রিং এটি আমার আন্ডারলাইনযুক্ত স্ট্রিং


0

আপনি নীচের দেওয়া উদাহরণ ব্যবহার করে বিভিন্ন টাইপফেস সেট করতে পারেন -

textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);

অথবা আপনি যদি একটি আলাদা ফন্ট এবং এর টাইপফেস সেট করতে চান। এটি সম্পদ বা কাঁচা ফোল্ডারে যুক্ত করুন এবং তারপরে এটি পছন্দ করুন

  Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
  tv1.setTypeface(face);

  Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
  tv2.setTypeface(face1);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.