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?