Android
SpannableString
Suche…
Syntax
-
char charAt (int i)
-
boolean equals (Object o)
-
void getChars (int start, int end, char[] dest, int off)
-
int getSpanEnd (Object what)
-
int getSpanFlags (Object what)
-
int getSpanStart (Object what)
-
T[] getSpans (int queryStart, int queryEnd, Class<T> kind)
-
int hashCode ()
-
int length ()
-
int nextSpanTransition (int start, int limit, Class kind)
- void removeSpan (Objekt was)
-
void setSpan (Object what, int start, int end, int flags)
-
CharSequence subSequence (int start, int end)
-
String toString ()
-
SpannableString valueOf (CharSequence source)
Hinzufügen von Stilen zu einer Textansicht
Im folgenden Beispiel erstellen wir eine Aktivität, um eine einzelne TextView anzuzeigen.
Die TextView verwendet einen SpannableString
als Inhalt, der einige der verfügbaren Stile veranschaulicht.
Hier 'was wir mit dem Text machen werden:
- Mach es größer
- Fett gedruckt
- Unterstreichen
- Kursiv
- Durchgestrichen
- Farbig
- Hervorgehoben
- Als hochgestellt anzeigen
- Als tiefgestellt anzeigen
- Als Link anzeigen
- Machen Sie es anklickbar.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SpannableString styledString
= new SpannableString("Large\n\n" // index 0 - 5
+ "Bold\n\n" // index 7 - 11
+ "Underlined\n\n" // index 13 - 23
+ "Italic\n\n" // index 25 - 31
+ "Strikethrough\n\n" // index 33 - 46
+ "Colored\n\n" // index 48 - 55
+ "Highlighted\n\n" // index 57 - 68
+ "K Superscript\n\n" // "Superscript" index 72 - 83
+ "K Subscript\n\n" // "Subscript" index 87 - 96
+ "Url\n\n" // index 98 - 101
+ "Clickable\n\n"); // index 103 - 112
// make the text twice as large
styledString.setSpan(new RelativeSizeSpan(2f), 0, 5, 0);
// make text bold
styledString.setSpan(new StyleSpan(Typeface.BOLD), 7, 11, 0);
// underline text
styledString.setSpan(new UnderlineSpan(), 13, 23, 0);
// make text italic
styledString.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);
styledString.setSpan(new StrikethroughSpan(), 33, 46, 0);
// change text color
styledString.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0);
// highlight text
styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0);
// superscript
styledString.setSpan(new SuperscriptSpan(), 72, 83, 0);
// make the superscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 72, 83, 0);
// subscript
styledString.setSpan(new SubscriptSpan(), 87, 96, 0);
// make the subscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 87, 96, 0);
// url
styledString.setSpan(new URLSpan("http://www.google.com"), 98, 101, 0);
// clickable text
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
// We display a Toast. You could do anything you want here.
Toast.makeText(SpanExample.this, "Clicked", Toast.LENGTH_SHORT).show();
}
};
styledString.setSpan(clickableSpan, 103, 112, 0);
// Give the styled string to a TextView
TextView textView = new TextView(this);
// this step is mandated for the url and clickable styles.
textView.setMovementMethod(LinkMovementMethod.getInstance());
// make it neat
textView.setGravity(Gravity.CENTER);
textView.setBackgroundColor(Color.WHITE);
textView.setText(styledString);
setContentView(textView);
}
Und das Ergebnis wird so aussehen:
Mehrfachschnur mit Mehrfarben
Methode: setSpanColor
public Spanned setSpanColor(String string, int color){
SpannableStringBuilder builder = new SpannableStringBuilder();
SpannableString ss = new SpannableString(string);
ss.setSpan(new ForegroundColorSpan(color), 0, string.length(), 0);
builder.append(ss);
return ss;
}
Verwendungszweck:
String a = getString(R.string.string1);
String b = getString(R.string.string2);
Spanned color1 = setSpanColor(a,Color.CYAN);
Spanned color2 = setSpanColor(b,Color.RED);
Spanned mixedColor = TextUtils.concat(color1, " ", color2);
// Now we use `mixedColor`
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow