问题标签 [spannablestring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11256 浏览

android - Android 可跨行高

最近几天一直在尝试解决这个问题,但没有成功......

我现在正在学习android,目前正在创建一个带有历史的计算器作为我的学习项目。我有一个负责显示所有历史记录的 TextView……我使用的是一种看起来像计算器字体的数字字体,但这仅适用于数字、小数和逗号。我希望所有运算符都以不同的字体突出显示(目前为 Arial Narrow)。我已经能够使用可扩展的字符串很好地工作,在该字符串中我指定了字体颜色以及使用 CustomTypeFaceSpan 类应用我的自定义字体的字体。

问题......当我混合字体时,行高似乎存在问题,所以我发现这篇文章演示了使用另一个自定义定义的类将行高应用于每行添加的可跨文本:

这似乎不起作用,我不知道为什么。如果我不应用不同的字体,那么它会按预期显示,第一行上方没有空格,行间距约为 5px。当我应用备用字体时,第一行文本上方有大约 10 到 15 像素的空间,行距大约是 10 到 15 像素。

字体大小没有区别,只有字体。我错过了什么。我实现了 CustomLineHeightSpan,它实现了 LineHeightSpan 并覆盖了 chooseHeight 方法。我这样称呼它:

WordtoSpan.setSpan(new CustomLineHeightSpan(10), operatorPositions.get(ii), operatorPositions.get(ii) + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

我对 CustomLineHeightSpan 的调用似乎并不重要。没有什么变化...

任何人都知道我错过了什么......我确定这是一个“我不敢相信我错过了”的答案,但目前似乎无法弄清楚。

感谢您的帮助:-)

0 投票
1 回答
762 浏览

android - 有没有办法在 Android 上制作自定义 Spanables?

在我的 Android 应用程序中,我有带有链接的文本视图。他们每个人都在切换一个特定的事件(打开浏览器,开始另一个活动,等等......)。为了解决这个问题,我没有找到比这样做更好的解决方案:

然后,在显示 textview 时,我使用 SpannableStringBuilder 将每个链接转换为自定义的 spannable。

我知道这很hacky。这就是为什么我想知道是否还有其他更好的方法?

我有两个想法:

  • 是否可以使用自己的编组系统实现自定义跨度?例如自定义可跨匹配标签,如:

    <div class="foo"></div>

然后我会自动检测到FooClickableSpannable扩展ClickableSpanfromHtml()

  • 我可以使用自定义 url 方案来打开我的活动,但如果有其他选择,我不确定如何强制它不显示应用程序选择器。
0 投票
2 回答
5501 浏览

android - 对部分文本使用自定义字体

这为我提供了整个 TextView 的正常文本。

谢谢你。

0 投票
0 回答
920 浏览

android - 使用 SpannableString 突出显示字符串中的多个单词

我使用 aSpannableString来强调某些单词,但是,我意识到如果有多个单词,我的代码只会突出显示第一个单词。不完全确定如何完成突出显示多个单词:

我在想我可以split在每个空间输入文本并循环遍历它,但不确定是否有更好的方法。

我确实有这段代码可以使用正则表达式突出显示多个单词,但是,我尽量避免使用正则表达式,因为它在 Android 应用程序中,并且我在 a 中使用它,ListView而且我被告知它们非常昂贵。此外,这段代码我只突出显示了整个单词,因此使用上面的示例文本,如果句子中包含“抗议”一词,则使用此代码不会突出显示:

0 投票
4 回答
16272 浏览

android - 为 TextView 的一部分设置不同的字体和颜色

我试过这个:

但这没有用。

它只需要最新的setSpan,即..,文本颜色正在更改,但字体没有更改。

0 投票
1 回答
3630 浏览

android - 在 SpannableStringBuilder 中对齐位图

如何将位图与 SpannableString 中的文本对齐?

我想用这些图像证明问题:

我想要的是使文本和图像垂直居中(文本没问题,但图像搞砸了)。

结果是: 在此处输入图像描述

0 投票
2 回答
5836 浏览

android - 文本与 EditText 中的 ImageSpan 混淆

我正在构建一个简单的聊天应用程序,用户可以在其中发送文本和表情符号。我可以将文本和表情符号发送到另一部手机。我的问题是:

1.当我输入一些东西并添加一个表情时:

在此处输入图像描述

然后我不能在图像之前和之后输入任何文本。我可以写在“o”字母之前。系统“看到”了我输入的内容,因此即使我在笑脸后输入“Honey”,我也看不到它,但 EditText 会注册它并发送消息:

在此处输入图像描述

2.当我只在Edittext中添加一个表情然后我删除它时,我无法输入任何内容,因为删除的表情出现了。它只出现一次,所以无论我输入多少个字符,EditText 看起来就像我删除表情符号之前一样,但是文本是在没有表情符号的情况下发送的,就像在所有三种情况下一样。

3.当我在 EditText 中输入“something”然后在“some”之后插入一个表情符号:

在此处输入图像描述

然后我把光标放在表情符号后面并删除它,剩下的就是:

在此处输入图像描述

但是当我按下发送按钮时会发送正确的消息:

在此处输入图像描述

这就是表情的按钮侦听器内部的内容(当我单击表情将其添加到 EditText 时,此方法被激活)。

0 投票
1 回答
412 浏览

android - 如何使用具有不同颜色的命令和响应字符串的 EditText 构建显示?

我正在尝试实现一个类似超文本的应用程序,这样我就可以通过 USB 使用平板电脑与 PIC 系统对话。我的概念是有一个片段显示两个 EditText 视图,一个允许在平板电脑上编写和编辑命令,另一个用于保持两个方向的所有流量。

我已经将组合字符串排序并添加到流量视图中。但是,我希望能够以与 PIC 生成的回复不同的颜色显示平板电脑生成的字符串。我尝试了许多 setSpan 的组合和排列,但没有运气 - 有什么想法吗?我也对达到同样目的的其他方式持开放态度。

我正在使用的 Java 代码是:

使用 Html.fromHtml 的工作代码是:

}

0 投票
1 回答
401 浏览

android - 创建 SpannableString 时抛出 NullPointerException

我正在尝试创建一个 textview,其文本使用 spannableString 部分下划线,但是当我尝试这样做时,我得到了一个 nullpointerexception。这是我的代码:

在此先感谢您的帮助。

0 投票
3 回答
1137 浏览

android - 来自 SpannableStringInternal 的 StringIndexOutOfBoundsException

我不断收到来自市场的以下错误报告:

令人沮丧的部分是,这源于 android 本身——并且在我的代码中没有起点。在做了一些研究之后,这只发生在希伯来语用户身上,我发现这个链接到谷歌错误 - http://code.google.com/p/android/issues/detail?id=30889

我自然而然地尝试联系作者和分配给这个 bug 的谷歌员工——他们都没有屈膝礼或回复。

我设置跨度的相关代码是:

搜索词是名称的一部分。我想用不同的颜色标记 searchTerm 部分,以便用户更容易看到它。

我为此投入了很多时间,因为我什至没有设法在我的 4 台测试设备和 8 台 AVD 上重新创建它,我有点迷失了。任何提示\建议在没有 Spannables 的情况下做同样的事情,将不胜感激。