HtmlSpanner

Android HTML rendering library

HtmlSpanner started as the HTML rendering library for PageTurner, but looking through some questions on StackOverflow I noticed how many people were struggling with the infamous Html.fromHtml() and getting its results to display properly in TextViews.

HtmlSpanner allows you full control over how tags are rendered and gives you all the data about the location of a tag in the text. This allows proper handling of anchors, tables, numbered lists and unordered lists.

It currently renders:

  • <pre> tags
  • <i>, <strong>, <cite>, <dfn> as italic text
  • <b> and <strong> as bold text
  • <blockquote>
  • <ul> and <ol> with bullets and numbering
  • <br> and <p> with optional whitespace limiting
  • <h1>..<h6>
  • <tt>
  • <big>, <small>
  • <sup> and <sub>
  • <center>
  • <tables>
  • <img>
  • <a>
  • <font> tags with size, face and color attributes

The default link implementation just opens URLs, but it can be easily overridden to support anchors.

HtmlSpanner uses HtmlCleaner to do most of the heavy lifting for parsing HTML files.

Usage

In its simplest form, just call (new HtmlSpanner()).fromHtml() to get similar output as Android’s Html.fromHtml().

The code is on GitHub, and the license is Apache 2.0

 

Leave a Reply

  • Google ads