草庐IT

BackgroundColorSpan

全部标签

android - 带有附加垂直填充的 BackgroundColorSpan

在我的应用程序中,我的外观与GMail应用程序用户界面中的标签类似。对于那些可能不知道的人,它们看起来像这样(标签是这些彩色条):为了达到类似的效果,我使用了9-patch的可绘制对象——我为每个标签创建了一个TextView并将可绘制对象分配给它。这是一个简单的解决方案,但我不喜欢它。它并不优雅,如探查器所示,它非常慢,我只是认为这不是正确的方法。我更改了UI的设计以使其更“ICS-y”,因此我从标签中删除了圆角。我开始思考如何替换9补丁解决方案。最明显的是使用BackgroundColorSpan。但它有一个小缺点。我希望我的标签有一些填充。使用可绘制对象,很容易实现。有了跨度,就

android - 如何在android中检索选定文本的BackgroundColorSpan

我正在尝试将BackgroundColorSpan设置为我的Edit-text中的选定文本。因此,当我选择任何文本并单击按钮时,它会将背景颜色设置为该特定文本,然后我将该注释保存到我的SDCard中,格式为.html然后我再次检索该注释以进行编辑再次以相同的格式。我现在面临的问题是,当我将BackgroundColorSpan应用于所选文本时,它显示的是我应用的具有背景颜色的字符串,但是一旦我将该注释保存到我的SDCard并重新打开,它不显示该特定字符串的背景颜色,而是显示没有背景颜色的普通字符串。下面是我用来将背景颜色设置为编辑文本选定区域的代码mSpannable.setSpan(

android - BackgroundColorSpan 调整高度或为其添加填充

我有一个应用程序,我在TextView中显示多行和多段格式化文本。为此,我正在使用SpannableStringBuilder。我想在这里做的一件事是能够突出显示文本。现在我尝试使用BackgroundColorSpan,但在这种情况下,文本的背景覆盖了整个行高。我希望它只覆盖文本。似乎没有明显的方法可以在此跨度上设置垂直填充或高度。只是颜色。其次,我还尝试继承ReplacementSpan并通过在此类的draw方法中绘制来实现我自己的backgroundSpan。但这似乎不支持多行突出显示。谁能告诉我如何才能实现这个突出显示功能?基本上,我希望它像电子书阅读器一样工作,最好是Kind

java - 使用 BackgroundColorSpan 时光标不可见

我正在使用BackgroundColorSpan来突出显示EditText中的某些文本。我遇到的问题是,如果颜色具有100%的alpha,则文本字段的光标不可见,并且很难用较低的alpha看到。我已经深入研究了EditText和Editor的代码(用于在EditText中绘制文本)并且我已经发现在Editor.onDraw(...)中,光标在Layout之前绘制(Layout依次绘制文本):if(highlight!=null&&selectionStart==selectionEnd&&mCursorCount>0){>>drawCursor(canvas,cursorOffsetV