我需要为我的程序创建一个"信息".我想用几种颜色,样式,字体,ecc填充信息文本.
我发现了这个:http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring
还有另一种方法(更容易)这样做吗?
谢谢!
wsa*_*lle 14
在阅读了你的问题标题后,我准备给你一个指向这篇文章的链接.我发现使用跨度并且SpannableString非常强大.替代方法是为您的文本使用HTML格式,这可以使用Html.fromHtml()来完成.
但是,目前还不清楚支持哪些HTML标记,因为文档只是简单地说:
此类将HTML字符串处理为可显示的样式文本.并非所有HTML标记都受支持.
因此,对于一个好的解决方案,我肯定会采用SpannableString文章中的方法.这种方法在实践中非常方便,因为您还可以创建自己的扩展现有扩展类的扩展类(例如,如果您希望文本部分使用未内置的自定义字体).
Ada*_*331 10
我在周末写了一个处理这个的库,我称之为RichTextView.
该库允许您格式化文本范围(使其为粗体,下划线,斜体,组合等)以及为其着色(文本颜色和突出显示).在下一个版本中,我计划允许自定义字体跨度等.
要使用它很简单,只需将以下依赖项添加到gradle文件:
compile 'com.androidessence.lib:richtextview:1.0.1'
Run Code Online (Sandbox Code Playgroud)
现在,假设您要将前四个字符设为粗体,您可以简单地进行以下调用:
myRichTextView.formatSpan(0, 4, RichTextView.FormatType.BOLD);
Run Code Online (Sandbox Code Playgroud)
请注意,结束索引参数不包括在内,因此通过说(0 - > 4)我们实际上是粗体索引(0 - > 3).
如果您想同时使用粗体和下划线,请使用EnumSet:
myRichTextView.formatSpan(0, 4, EnumSet.of(RichTextView.FormatType.BOLD, RichTextView.FormatType.UNDERLINE));
Run Code Online (Sandbox Code Playgroud)
有关最新信息,请参阅上面链接的Github存储库,但我会尝试在它过时时更新此答案.
当我过去需要格式化文本时,我创建了一个带有格式化的 html 文件,将其粘贴在 res/raw 目录中并将其加载到 WebView 中。我以前从未尝试过使用不同的字体,所以不确定这是否有效,但粗体和斜体等都可以。
| 归档时间: |
|
| 查看次数: |
17878 次 |
| 最近记录: |