gpt4 book ai didi

java - 在android TextView中格式化长段落

转载 作者:行者123 更新时间:2023-12-02 09:15:06 24 4
gpt4 key购买 nike

我有很多文本(超过 10000 个单词),我想在我的 Android 应用程序上显示它们。文本包含项目符号、段落和换行符。我想知道如何在不手动编辑的情况下在我的应用程序上显示。不可能将每个换行符转换为 \n 并将每个制表符转换为 \t。我还尝试解析 HTML 中的数据,然后使用 Html.fromHtml(getString(R.string.text)) 。然而,我得到的显示看起来完全没有格式化。

这就是我希望文本在应用程序中的样子:

最佳答案

HTML 标签是解决简单问题的简单解决方案,例如将文本设为粗体、斜体,甚至显示项目符号点。要设置包含 HTML 标签的文本样式,请调用 Html.fromHtml 方法。在底层,HTML 格式被转换为 span。请注意,Html 类不支持所有 HTML 标签和 CSS 样式,例如将项目符号点设置为另一种颜色。

val text = "My text <ul><li>bullet one</li><li>bullet two</li></ul>"
txtview.text = Html.fromHtml(text)

Spans 允许您通过更细粒度的自定义来实现多样式文本。例如,您可以通过应用 BulletSpan 将文本段落定义为具有项目符号点。您可以自定义文本边距和项目符号之间的间隙以及项目符号的颜色。从 Android P 开始,您甚至可以设置项目符号点的半径。您还可以为跨度创建自定义实现。请查看下面的“创建自定义跨度”部分以了解具体操作方法。

val spannable = SpannableString("My text \nbullet one\nbullet two")
spannable.setSpan(
BulletPointSpan(gapWidthPx, accentColor),/* start index */ 9, /* end index */ 18,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
spannable.setSpan(BulletPointSpan(gapWidthPx, accentColor),/* start index */ 20, /* end index */ spannable.length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
txtview.text = spannable

enter image description here

关于java - 在android TextView中格式化长段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com