如何使用Spannable String Builder将字符串括在h1标记内

时间:2016-01-22 19:11:31

标签: android

如何在Edittext中将特定字符串设置为标题。我想输出看起来像这样:

  

标题

     

其他一些文字。

我试图让文字变粗,并赋予它更大的风格。像这样:

s.setSpan(new StyleSpan(Typeface.BOLD), 0, length ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new RelativeSizeSpan(1.2f), 0, length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

这就是诀窍,但我希望如果我可以在字符串周围创建一个 h1 标签,那么我从Edittext中提取的格式化的html代码可以在textview中显示或在其他地方使用。

更新

这似乎是Html类的一个问题。尝试这样的事情。

Log.d("Test", Html.toHtml(Html.fromHtml("<h1>Hello</h1>")));

你会在日志中得到这样的东西:

<p dir="ltr"><b>Hello</b></p>

似乎Html类能够将 h1 标记转换为spannable但无法将其转换回 h1 标记。

fromHtml 方法使用我上面已经说过的类似技巧将标头标签转换为Spannable。它没有在 toHtml 方法中实现,因此它不会从Spannable创建标头标记。有人可以试着解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可以查看HTML.fromHtml(String text)

这将解析HTML并返回一个跨区字符串。唯一值得注意的是,修改用于跨度的样式有点棘手。

答案 1 :(得分:0)

尝试类似这样的方法。哪个对我有用

SpannableString text = new SpannableString(Html.fromHtml(<h1>Your content</h1>));