Antworten:
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
So behalten Sie die vorherige Schrift bei
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
entfernt kein fett oder kursiv gestyltes Styling von a TextView
. Sie müssen dafür verwenden textView.setTypeface(null, Typeface.NORMAL);
.
textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
Versuchen Sie dies, TextView
um Fett oder Kursiv zu setzen
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL));
tv.setTypeface(null, Typeface.BOLD);
wird dies nicht dasselbe tun (einen vorhandenen Schriftstil löschen)?
Sie können programmgesteuert Folgendes verwenden 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
Sie können direkt in einer XML-Datei Folgendes festlegen <TextView />
:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
with in Java and without using XML
Übrigens Es wird auch anderen helfen.
Sie haben zwei Möglichkeiten:
Option 1 (funktioniert nur fett, kursiv und unterstrichen):
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));
Option 2:
Verwenden Sie ein Spannable ; Es ist komplizierter, aber Sie können die Textattribute dynamisch ändern (nicht nur fett / kursiv, sondern auch farbig).
typeFace
Sie einen einzelnen Stil für den gesamten Text festlegen.
Sie können programmgesteuert Folgendes tun setTypeface()
:
Unten finden Sie den Code für die Standardschrift
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
und wenn Sie eine benutzerdefinierte Schriftart festlegen möchten :
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
Sie können direkt in der XML-Datei Folgendes festlegen <TextView />
:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Oder Sie können Ihre Lieblingsschriftart (aus Assets) festlegen. Weitere Informationen finden Sie unter Link
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
Jetzt legen Sie die textview
Eigenschaften fest ..
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
Es wäre
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
und kursiv sollte ersetzt sein können , Typeface.DEFAULT_BOLD
mit Typeface.DEFAULT_ITALC
.
Lassen Sie mich wissen, wie es funktioniert.
Verwenden Sie textView.setTypeface(Typeface tf, int style);
diese Option , um die Stileigenschaft von festzulegen TextView
. Weitere Informationen finden Sie in der Entwicklerdokumentation .
Versuche dies:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Versuche dies:
TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
Die Standardmethode hierfür ist die Verwendung der benutzerdefinierten Stile. Ex-
In styles.xml
fügen Sie die folgende.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
<item name="android:textStyle">bold|italic</item>
</style>
Wenden Sie diesen Stil TextView
wie folgt auf Ihren an.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
Eine Möglichkeit ist:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
Eine weitere Option, wenn Sie die vorherige Schrift beibehalten und die zuvor angewendete Schrift nicht verlieren möchten:
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);
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
So behalten Sie die vorherige Schrift bei
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
Sie können Folgendes versuchen:
<string name="title"><u><b><i>Your Text</i></b></u></string>
Der einfachste Weg, den Sie basierend auf den Stilauswahlkriterien machen können, ist:
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));
Da ich eine benutzerdefinierte Schriftart verwenden möchte, funktioniert für mich nur die Verbindung mehrerer Antworten. Offensichtlich wurden Einstellungen in meinem layout.xml
Like android:textStlyle="italic"
von AOS ignoriert. Also musste ich endlich Folgendes tun: In strings.xml
der Zielzeichenfolge wurde deklariert als:
<string name="txt_sign"><i>The information blah blah ...</i></string>
dann zusätzlich im Code:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
Ich habe die Spannable
Option nicht ausprobiert (von der ich annehme, dass sie funktionieren muss), aber
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
hatte keine Wirkung. Auch wenn ich das italic tag
aus dem strings.xml
Alleinlassen entferne setTypeface()
, hat es auch keine Wirkung. Tricky Android ...
Und wie hier erläutert , müssen Sie die öffnenden Klammern umgehen, wenn Sie Parameter für Android Developers String Resources verwenden müssen, wenn Sie Parameter in Ihrer gestalteten Textressource verwenden müssen
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
und rufe formatHtml (string) auf
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
Dies ist das einzige, was bei einem OnePlus 5T funktioniert hat, der mit der OnePlus Slate ™ -Schrift konfiguriert ist:
textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));
Andere Methoden würden dazu führen, dass Roboto entweder auf BOLD oder NORMAL zurückgreift.
Wenn Sie vereinfachte Tags mit AndroidX verwenden, sollten Sie HtmlCompat.fromHtml () verwenden.
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));
Der beste Weg ist, es in zu definieren 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>
Und aktualisieren Sie es in 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" />
1) Sie können es mit TypeFace einstellen. 2) Sie können direkt in strings.xml (in Ihrem Werteordner) verwenden. 3) Sie können String myNewString = "Dies ist mein fett gedruckter Text. Dies ist mein kursiver String. Dies ist mein unterstrichener String
Sie können die verschiedenen Schriftarten anhand des folgenden Beispiels einstellen -
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Oder wenn Sie eine andere Schriftart und deren Schriftart festlegen möchten. Fügen Sie es dem Asset oder Raw-Ordner hinzu und verwenden Sie es dann wie folgt
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);