मैं TextView
सामग्री को बोल्ड, इटैलिक और रेखांकित करना चाहता हूं । मैंने निम्न कोड की कोशिश की और यह काम करता है, लेकिन रेखांकित नहीं करता है।
<Textview android:textStyle="bold|italic" ..
मैं यह कैसे करुं? कोई त्वरित विचार?
मैं TextView
सामग्री को बोल्ड, इटैलिक और रेखांकित करना चाहता हूं । मैंने निम्न कोड की कोशिश की और यह काम करता है, लेकिन रेखांकित नहीं करता है।
<Textview android:textStyle="bold|italic" ..
मैं यह कैसे करुं? कोई त्वरित विचार?
जवाबों:
मैं अंडरलाइन के बारे में नहीं जानता, लेकिन बोल्ड और इटैलिक के लिए है "bolditalic"
। यहाँ अंडरलाइन का कोई उल्लेख नहीं है: http://developer.android.com/reference/android/widget/TextView.html#attr_android:textStyle
आप का मन करता है कि जिस उल्लेख का उपयोग करने की bolditalic
आवश्यकता हो, और मैं उस पृष्ठ से उद्धृत करूं
निम्नलिखित स्थिर मूल्यों में से एक या एक से अधिक ('|') से अलग होना चाहिए।
तो आप उपयोग करेंगे bold|italic
आप इस प्रश्न को अंडरलाइन कर सकते हैं : क्या मैं एंड्रॉइड लेआउट में टेक्स्ट को रेखांकित कर सकता हूं?
textView.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
यह एक ही समय में आपके TextView को बोल्ड , रेखांकित और इटैलिक बनाना चाहिए ।
strings.xml
<resources>
<string name="register"><u><b><i>Copyright</i></b></u></string>
</resources>
इस स्ट्रिंग को अपने TextView पर सेट करने के लिए, इसे अपने main.xml में करें
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/register" />
या जावा में ,
TextView textView = new TextView(this);
textView.setText(R.string.register);
जब आप डायनामिक टेक्स्ट का उपयोग कर सकते हैं तो कभी-कभी उपरोक्त दृष्टिकोण सहायक नहीं होगा। तो उस स्थिति में SpannableString कार्रवाई में आता है।
String tempString="Copyright";
TextView text=(TextView)findViewById(R.id.text);
SpannableString spanString = new SpannableString(tempString);
spanString.setSpan(new UnderlineSpan(), 0, spanString.length(), 0);
spanString.setSpan(new StyleSpan(Typeface.BOLD), 0, spanString.length(), 0);
spanString.setSpan(new StyleSpan(Typeface.ITALIC), 0, spanString.length(), 0);
text.setText(spanString);
आउटपुट
new StyleSpan(Typeface.BOLD_ITALIC)
या कोटलिन में इस तरह:
val tv = findViewById(R.id.textViewOne) as TextView
tv.setTypeface(null, Typeface.BOLD_ITALIC)
// OR
tv.setTypeface(null, Typeface.BOLD or Typeface.ITALIC)
// OR
tv.setTypeface(null, Typeface.BOLD)
// OR
tv.setTypeface(null, Typeface.ITALIC)
// AND
tv.paintFlags = tv.paintFlags or Paint.UNDERLINE_TEXT_FLAG
या जावा में:
TextView tv = (TextView)findViewById(R.id.textViewOne);
tv.setTypeface(null, Typeface.BOLD_ITALIC);
// OR
tv.setTypeface(null, Typeface.BOLD|Typeface.ITALIC);
// OR
tv.setTypeface(null, Typeface.BOLD);
// OR
tv.setTypeface(null, Typeface.ITALIC);
// AND
tv.setPaintFlags(tv.getPaintFlags()|Paint.UNDERLINE_TEXT_FLAG);
इसे सरल और एक पंक्ति में रखें :)
paintFlags
आवश्यक? यह उसके बिना काम कर रहा है
बोल्ड और इटैलिक के लिए आप जो कुछ भी कर रहे हैं वह कोड के बाद अंडरस्कोर उपयोग के लिए सही है
HelloAndroid.java
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.widget.TextView;
public class HelloAndroid extends Activity {
TextView textview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textview = (TextView)findViewById(R.id.textview);
SpannableString content = new SpannableString(getText(R.string.hello));
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textview.setText(content);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"
android:textStyle="bold|italic"/>
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloAndroid!</string>
<string name="app_name">Hello, Android</string>
</resources>
underline
बजाय पास शून्य मान को हटाने के लिएnew UnderlineSpan()
content.setSpan(null, 0, content.length(), 0);
यह अन्य सेटिंग्स को बनाए रखते हुए एक अंडरलाइन जोड़ने का आसान तरीका है:
textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Programmatialy:
आप 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
एक्सएमएल:
आप XML फ़ाइल में सीधे सेट कर सकते हैं जैसे:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
यदि आप एक फ़ाइल या नेटवर्क से उस पाठ को पढ़ रहे हैं।
आप अपने पाठ में HTML टैग जोड़कर इसे प्राप्त कर सकते हैं जैसे कि उल्लेख किया गया है
This text is <i>italic</i> and <b>bold</b>
and <u>underlined</u> <b><i><u>bolditalicunderlined</u></b></i>
और फिर आप HTML क्लास का उपयोग कर सकते हैं जो HTML स्ट्रिंग्स को डिस्प्ले करने योग्य स्टाइल टेक्स्ट में प्रोसेस करता है।
// textString is the String after you retrieve it from the file
textView.setText(Html.fromHtml(textString));
style="?android:attr/listSeparatorTextViewStyle
Xml में कोड की सिर्फ एक पंक्ति
android:textStyle="italic"
आप buildSpannedString{}
अपनी core-ktx
निर्भरता के तहत कोटलिन का उपयोग करके इसे आसानी से प्राप्त कर सकते हैं ।
val formattedString = buildSpannedString {
append("Regular")
bold { append("Bold") }
italic { append("Italic") }
underline { append("Underline") }
bold { italic {append("Bold Italic")} }
}
textView.text = formattedString