Wie stelle ich den Schriftstil in einem Android TextView auf fett, kursiv und unterstrichen ein?
Lesezeit: 6 Minuten
D-Mann
Ich möchte eine machen TextView‘s Inhalt fett, kursiv und unterstrichen. Ich habe den folgenden Code ausprobiert und es funktioniert, aber nicht unterstrichen.
<Textview android:textStyle="bold|italic" ..
Wie mache ich es? Irgendwelche schnellen Ideen?
funktioniert es, nur einen von ihnen einzustellen?
– Falstro
7. Januar 2011 um 7:47 Uhr
ja funktioniert gut ich möchte es auch unterstreichen.
Beachten Sie, dass Sie die genannten verwenden bolditalic Sie müssen, und ich zitiere von dieser Seite
Muss einer oder mehrere (durch ‘|’ getrennt) der folgenden konstanten Werte sein.
also würdest du verwenden bold|italic
Sie können diese Frage auf Unterstreichung überprüfen: Kann ich Text in einem Android-Layout unterstreichen?
für unterstrich.. textView.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
– bCliks
11. September 2013 um 5:51 Uhr
@bala Beachten Sie, dass Ihre Lösung immer den gesamten Text unterstreicht. Daher ist dies nicht möglich, wenn nur ein Teil davon unterstrichen werden soll.
– Giulio Piancastelli
2. April 2014 um 18:14 Uhr
Wenn möglich, wird die Verwendung von XML anstelle von Code bevorzugt. Siehe die Antwort von Andro Selva unten
– El Sushiboi
23. Oktober 2020 um 16:05 Uhr
Oder einfach so in Kotlin:
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
Oder in Java:
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);
Halten Sie es einfach und in einer Zeile 🙂
Durch Einfügen des kotlinx.android.synthetic-Pakets für die Ansicht, mit der Sie arbeiten, ist die findViewByID in Kotlin nicht erforderlich, sodass jede der setTypeface-Zeilen: textViewOne.setTypeface(…)
– cren90
11. Dezember 2017 um 22:50 Uhr
ist paintFlags notwendig ? Es geht auch ohne
– Prabs
13. Februar 2019 um 6:27 Uhr
Vivek
Für fett und kursiv ist alles, was Sie tun, für den Unterstrich korrekt, verwenden Sie den folgenden Code
HalloAndroid.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);
}
}
Beachten Sie, dass diese Lösung immer den gesamten Text unterstreicht, daher ist sie nicht machbar, wenn nur ein Teil davon unterstrichen werden soll.
– Giulio Piancastelli
2. April 2014 um 18:15 Uhr
König der Massen
Programmatisch:
Sie können dies programmgesteuert mit der Methode setTypeface () tun:
Unten ist der 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
XML:
Sie können direkt in der XML-Datei wie folgt festlegen:
funktioniert es, nur einen von ihnen einzustellen?
– Falstro
7. Januar 2011 um 7:47 Uhr
ja funktioniert gut ich möchte es auch unterstreichen.
– D-Mann
7. Januar 2011 um 7:48 Uhr
textView.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
– bCliks
11. September 2013 um 5:50 Uhr
tv.setTypeface(null, Typeface.BOLD_ITALIC);
– Benutzer2742371
30. Oktober 2013 um 13:54 Uhr
Unterstreichen Sie TextView – 5 erstaunliche Möglichkeiten
– Vijay Ram
19. Mai 2020 um 7:10 Uhr