578 Stimmen

Ist es möglich, mehrere Stile innerhalb einer TextView zu haben?

Ist es möglich, mehrere Stile für verschiedene Teile des Textes innerhalb einer TextView zu setzen?

Ich stelle den Text zum Beispiel wie folgt ein:

tv.setText(line1 + "\n" + line2 + "\n" + word1 + "\t" + word2 + "\t" + word3);

Ist es möglich, für jedes Textelement einen anderen Stil zu verwenden? Z.B. Zeile1 fett, Wort1 kursiv, usw.

Der Entwicklerleitfaden Häufige Aufgaben und ihre Ausführung in Android enthält Auswählen, Hervorheben oder Gestalten von Textabschnitten :

// Get our EditText object.
EditText vw = (EditText)findViewById(R.id.text);

// Set the EditText's text.
vw.setText("Italic, highlighted, bold.");

// If this were just a TextView, we could do:
// vw.setText("Italic, highlighted, bold.", TextView.BufferType.SPANNABLE);
// to force it to use Spannable storage so styles can be attached.
// Or we could specify that in the XML.

// Get the EditText's internal text storage
Spannable str = vw.getText();

// Create our span sections, and assign a format to each.
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new BackgroundColorSpan(0xFFFFFF00), 8, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Dabei werden jedoch explizite Positionsnummern innerhalb des Textes verwendet. Gibt es einen saubereren Weg, dies zu tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X