このコードでは、htmlの太字タグの内側にあるすべての文字を太字にする必要があります。また、タグを削除するので、内部のコンテンツだけが表示されます。
SpannableStringBuilder sb = new SpannableStringBuilder("this is <b>bold</b> and this is <b>bold too</b> and this is <b>bold too, again</b>.");
Pattern p = Pattern.compile("<b>.*?</b>", Pattern.CASE_INSENSITIVE);
boolean stop = false;
while (!stop)
{
Matcher m = p.matcher(sb.toString());
if (m.find()) {
sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), m.start(), m.end(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
sb.delete(m.end()-4, m.end());
sb.delete(m.start(), m.start() + 3);
}
else
stop = true;
}
このコードはまた、単にsetSpanとForegroundColorSpanを使用し、色を設定する等のSuperscript(SUPタグ)などの他のHTMLスタイルタグ、
SpannableStringBuilder sb = new SpannableStringBuilder("text has <sup>superscript</sup> tag");
Pattern p = Pattern.compile("<sup>.*?</sup>", Pattern.CASE_INSENSITIVE);
boolean stop = false;
while (!stop)
{
Matcher m = p.matcher(sb.toString());
if (m.find()) {
sb.setSpan(new SuperscriptSpan(), m.start(), m.end(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
sb.delete(m.end()-6, m.end());
sb.delete(m.start(), m.start() + 5);
}
else
stop = true;
}
に適合させることができます。
sb.setSpan(new ForegroundColorSpan(Color.rgb(255, 0, 0)), m.start(), m.end(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
希望します。
TextEditはどのように設定されていますか? –
また太字のようにフォントサイズを設定するにはどうしたらいいですか?私はそれが太字で、フォント20と言うことを両方とも指定していますか? –
indexを更新してください(finalString.indexOf(normalBOLD)、finalString.indexOf(normalBOLD)+ normalBOLD.lenth()) –