首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spannable Vs字体Vs Html

Spannable Vs字体Vs Html
EN

Stack Overflow用户
提问于 2014-05-08 20:59:35
回答 2查看 1.9K关注 0票数 11

我正在准备一个应用程序,其中包含一个用于定制样式的复选框,如粗体、斜体、下划线、颜色等。我有点搞不懂哪种方法对性能有好处。我尝试过字体,但是当用户选择两个复选框时,它只显示最后一个值。效果不太好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-16 01:29:00

字体画画对象用于绘制文本的图形元素。它指定字体(例如MonospaceSans SerifSerif等)以及字体的样式(如BoldItalic等)斯潘Html都在内部使用。

因此,应该在SpannableHtml之间进行性能比较。

Html.fromHtml是一个代价更高的操作,因为它涉及到对Html的解析。我在曲景城中使用了下面的代码,并对HtmlSpannable进行了比较。它基本上设置文本粗体和设置超链接。

代码语言:javascript
复制
Debug.startMethodTracing("htmlspan");
Spanned s1 = Html.fromHtml("<b>text1: Constructed from HTML programmatically.</b> Click <a href=\"http://www.google.com\">Link</a> ");
tv1.setText(s1);
Debug.stopMethodTracing();
tv1.setMovementMethod(LinkMovementMethod.getInstance());

Debug.startMethodTracing("normalspan");
SpannableString s2 = new SpannableString("text2: Constructed from JAVA programmatically. Click here.");
s2.setSpan(new StyleSpan(Typeface.BOLD), 0, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s2.setSpan(new URLSpan("http://www.google.com"),53,53+4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv2.setText(s2);
Debug.stopMethodTracing();
tv2.setMovementMethod(LinkMovementMethod.getInstance());

结果:

  • Html:~14-15 14. (org.ccil.cowan.tagsoup.Parser.parse API占用12.282 14)
  • Spannbale API:~1-2ms.

Html的TraceView:

可扩展API的TraceView:

摘要:与Spannable相比,直接使用Html的性能更快。

票数 24
EN

Stack Overflow用户

发布于 2014-05-12 03:44:18

Spannable内部使用字体。Spannable是由android框架提供的,以方便开发。因此请使用Spannable。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23552437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档