如何制作多字节文本?

时间:2012-09-26 13:45:12

标签: android html

这是一个例子。

String source = "This is example text";
Spannable out = new SpannedString(source);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out.setSpan(boldSpan, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

//someTextView.setText(out);


预期结果:T hi s是e xam 文本(“hi”&“xam”是粗体)
实际结果:这是e xam 文本(仅适用于最后一个setSpan方法,粗体仅为“xam”)


如何制作多字节文字?这是可能的?
也许问题出现在 Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 标志中?感谢。

2 个答案:

答案 0 :(得分:20)

我认为你需要一个新的StyleSpan。

String source = "This is example text";
Spannable out = new SpannedString(source);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
StyleSpan boldSpan2 = new StyleSpan(Typeface.BOLD);
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out.setSpan(boldSpan2, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

虽然没试过。

答案 1 :(得分:0)

原因是每个粗体的spannable文本必须由StyleSpan表示。您的原因与重新分配值相同。