Android 为跨区文本添加填充

awa*_*ave 3 java format android string-formatting android-layout

在我的应用程序中,我获取并解析 html 内容并使用 Spanned 显示它。我这样使用 Spanned:

String html = "<p>Html Content</p>"
Spanned htmlSpan = Html.fromHtml(html, imageParser, null);
Run Code Online (Sandbox Code Playgroud)

我尝试使用 apache commons 库来设置填充,但它不起作用。

有什么办法可以设置左右padding吗?

编辑:忘了提及,我的 html 内容中也有图像。我尝试向 TextView 本身添加填充,但这样,所有图像也都有填充。

Dav*_*jak 5

一般来说,显示 HTML 最简单的解决方案是使用WebView. 这不是最好的解决方案,但它也适用于 css 和 javascript。

要在 a 中的跨区文本上应用填充,TextView您可以使用<blockquote>它将Html.fromHtml()转换为QuoteSpan. 如果您不喜欢该跨度的格式,您可以替换它并添加您自己的LeadingMarginSpan. TagHandler通过添加 a来在可跨越字符串上创建和处理您自己的标签,也可以实现相同的效果。

您可以使用类似以下内容来搜索和替换跨度

 QuoteSpan[] spans = text.getSpans(0, text.length(), QuoteSpan.class);
text.setSpan(YOUR_SPAN, text.getSpanStart(spans[0]), text.getSpanEnd(spans[0]), 0);
Run Code Online (Sandbox Code Playgroud)

使用跨度的文档很少,也很少有教程,但您可以查看此内容以进一步阅读。