当前位置: 首页 > 知识库问答 >
问题:

在Android中使用Spannable进行全文编辑

艾学海
2023-03-14

我有一个EditText视图,用于让用户输入文本。在某些字符之后,我想在EditText中减小文本的字体大小。我正在使用TextWatcher的OnTextChanged侦听器来跟踪用户输入和字符长度。这部分工作正常。但是要设置文本的字体大小,我使用以下方法:

final Spannable span = new SpannableString(editText.getText());
span.setSpan(new RelativeSizeSpan(0.9f), 0, string.length), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setText(span);

现在,我面临着两个问题:

  1. 根据需要更改当前文本大小,但如果用户在当前文本前面输入新文本,则该新文本的大小与所需的更新文本字体大小不同,而是与原始EditText文本字体大小相同。

例如,如果当前文本是“abc”,并且该文本的字体大小被更新,那么如果用户在“abc”前面输入“123”,如“123abc”,则123的大小不与更新的文本大小相同,而是与原始字体大小相同,但是“abc”继续保持更新的期望字体大小。

如有任何帮助,我们将不胜感激。

多谢了。

共有1个答案

李星波
2023-03-14

看看这个Truss.java,它易于实现,可以解决我们面临的很多与SpannableString相关的问题

 类似资料:
  • 问题内容: 我正在开发一个高容量的Web应用程序,其中的一部分是讨论帖子的MySQL数据库,该数据库需要平稳地增长到2000万+行。 我本来打算对表使用MyISAM(用于内置的全文本搜索功能),但是由于单个写入操作而使 整个表 被锁定的想法使我陷入困境。行级锁具有更大的意义(更不用说InnoDB在处理大型表时的其他速度优势)。因此,基于这个原因,我决心使用InnoDB。 问题是… InnoDB没有

  • 供参考:我的代码和这个so帖子非常相似。 谢谢

  • 我是sparql的新手,我正在尝试在其中一个属性中搜索一个单词。简单的查询工作良好,但我不知道如何执行全文搜索。我在jena网站上看到了这个例子:

  • 问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是首先了解他们的知识,然后通

  • 本文向大家介绍Django中使用Whoosh进行全文检索的方法,包括了Django中使用Whoosh进行全文检索的方法的使用技巧和注意事项,需要的朋友参考一下 Whoosh 是纯Python实现的全文搜索引擎,通过Whoosh可以很方便的给文档加上全文索引功能。 什么是全文检索 简单讲分为两块,一块是分词,一块是搜索。比如下面一段话: 上次舞蹈演出直接在上海路的弄堂里 比如我们现在想检索上次的演出

  • 问题内容: 通常,Android应用程序是用Java编写的。但是我听说也可以使用Scala或其他语言。而且我还读到,可以包含本机C / C ++代码。 是否有可用的推荐人/清单显示可以使用的语言? 问题答案: 在发布时,它是用于构建可分发的第三方Android软件的唯一官方支持的编程语言。 Android Native Development Kit(Android NDK),开发人员可以使用和构