gpt4 book ai didi

android - 在 TextView 文本的一部分上指定 "strikethrough"

转载 作者:IT老高 更新时间:2023-10-28 21:49:44 27 4
gpt4 key购买 nike

我有一个来自网络服务的文本 block ,根据我预定义的一些标签,我想在将文本设置为我的 TextView 之前设置文本样式。对于粗体、斜体和下划线,我可以使用 replaceAll 命令轻松完成:

PageText = PageText.replaceAll("\\*([a-zA-Z0-9]+)\\*", "<b>$1</b>");
PageText = PageText.replaceAll("=([a-zA-Z0-9]+)=", "<i>$1</i>");
PageText = PageText.replaceAll("_([a-zA-Z0-9]+)_", "<u>$1</u>");
txtPage.setText(Html.fromHtml(PageText), TextView.BufferType.SPANNABLE);

所以,要加粗一个单词,用 * 括起来,斜体用 _ 括起来。

但是,对于删除线,Html.fromHtml 不支持“strike”标签,所以不能以同样的方式完成。我已经看到使用 Spannable 设置文本部分样式的示例,但它需要位置数字。所以,我想我可以遍历文本,搜索 - (代表罢工的标签),然后搜索下一个,跨越中间的文本,并重复所有这样的字符串。它最终将是 10 行循环代码,而其他代码只有 1 行,所以我想知道是否有更优雅的解决方案。

最佳答案

如果它只是 TextView,你可以使用绘制标志来删除

TextView tv=(TextView) v.findViewById(android.R.id.text1);
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

关于android - 在 TextView 文本的一部分上指定 "strikethrough",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301453/

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