Show in textview html with inline styles

17,180

Android native TextView doesn't support all HTML tags and features. It only does support a few tags and properties. So, in your case, there's a couple of options which you may want to consider.

  • Use WebView to show rich texts. However, WebViews are too heavy and slow.

  • Use 3rd party libraries that improve native TextView and support more HTML tags. For example: HTML-TextView.

Share:
17,180
sofi37
Author by

sofi37

android developer

Updated on July 04, 2022

Comments

  • sofi37
    sofi37 almost 2 years

    I need to show html with inline styles in my app. There are a lot of text that must be in different views so I can't use Webview(I tried to use a lot of Webviews but the app becomes very slow ).As I know TextView can show html but it can`t show html with inline styles. So, what should I do? Is there any way to show it or to generate only html with simple tags from html with inline styles?

    So I need to show html like this:

    <p style="text-align: center;"><span style="color: #ff0000; font-size: 36pt; font-family: 'comic sans ms', sans-serif;">Article Title</span></p>
    

    But TextView can`t understand style.

  • sofi37
    sofi37 over 8 years
    Thank you for answer but the main problem is that I need to use inline styles.
  • frogatto
    frogatto over 8 years
    @sofi37 Sorry, Android TextViews don't support style property. You may want to instead use WebView.
  • frogatto
    frogatto over 8 years
    @sofi37 What do you want to do with style property? Only color?
  • sofi37
    sofi37 over 8 years
    @Hiimfrogatto Webview is too heavy and I need to use a couple of them.
  • frogatto
    frogatto over 8 years
    @sofi37 Color and font size are fine and are supported by TextView.
  • sofi37
    sofi37 over 8 years
    @Hiimfrogatto Not only color. Also align, font size, font color,font family, and others.
  • sofi37
    sofi37 over 8 years
    @Hiimfrogatto I got the package with html inline styles from back-end so I can`t change it to attributes. The only thing what I can do is to parse it but it is not so simple.
  • frogatto
    frogatto over 8 years
    @sofi37 Okay, so, consider using WebView.
  • frogatto
    frogatto over 8 years
    @sofi37 However, if you'd want to parse, consider [jSoup] and [HTMLcleaner].
  • sofi37
    sofi37 over 8 years
    @Hiimfrogatto but then app is too slow as I use for example 15 webviews
  • sofi37
    sofi37 over 8 years
    @Hiimfrogatto Thank you I will look on [jSoup] and [HTMLcleaner].