How To Generate Styled Text For Textview While Assembling String?
Solution 1:
Mark your string up with <b>
and <i>
tags as appropriate and then use the Html.fromHtml(String) to return the Spannable you are looking for.
Solution 2:
Html.fromHtml(String)
carries a lot more baggage with it than the more light weight SpannableString
classes. Whenever possible I would recommend that you avoid fromHtml
to style a string.
In your case you could build the string with SpannableStringBuilder
and then set the TextView
text with the final styled string.
// set the textSpannableStrings1=newSpannableString("Due Date\n");
SpannableStrings2=newSpannableString("July 22, 2010\n");
SpannableStrings3=newSpannableString("Course\n");
SpannableStrings4=newSpannableString("CSC 350\n");
// set the style
s1.setSpan(newStyleSpan(Typeface.BOLD), 0, s1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s2.setSpan(newStyleSpan(Typeface.ITALIC), 0, s2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s3.setSpan(newStyleSpan(Typeface.BOLD), 0, s3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s4.setSpan(newStyleSpan(Typeface.ITALIC), 0, s4.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// build the stringSpannableStringBuilderbuilder=newSpannableStringBuilder();
builder.append(s1);
builder.append(s2);
builder.append(s3);
builder.append(s4);
// set the text view with the styled text
textView.setText(builder);
I set the text and styles one by one but in real usage this could easily be done in a loop. Here is the result:
Solution 3:
you can use this:
textview.setTypeface(null, Typeface.BOLD_ITALIC);
Solution 4:
You can set a Spannable
as the text of the TextView
. That way you can create your text first, add style info when needed, and put that into the TextView
as appropriate.
Solution 5:
You should check how HTML class does it. I would parse the input and generate the spannable on the fly.
Post a Comment for "How To Generate Styled Text For Textview While Assembling String?"