Show in textview html with inline styles
Asked Answered
W

2

8

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.

Warrior answered 13/11, 2015 at 11:3 Comment(0)
M
11

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.

Millisecond answered 13/11, 2015 at 11:39 Comment(11)
Thank you for answer but the main problem is that I need to use inline styles.Warrior
@Warrior Sorry, Android TextViews don't support style property. You may want to instead use WebView.Millisecond
@Warrior What do you want to do with style property? Only color?Millisecond
@Hiimfrogatto Webview is too heavy and I need to use a couple of them.Warrior
@Warrior Color and font size are fine and are supported by TextView.Millisecond
@Hiimfrogatto Not only color. Also align, font size, font color,font family, and others.Warrior
@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.Warrior
@Warrior Okay, so, consider using WebView.Millisecond
@Warrior However, if you'd want to parse, consider [jSoup] and [HTMLcleaner].Millisecond
@Hiimfrogatto but then app is too slow as I use for example 15 webviewsWarrior
@Hiimfrogatto Thank you I will look on [jSoup] and [HTMLcleaner].Warrior
S
0

Only one way to implement this is to use a 3rd party libraries as alternative for Android Html.fromHtml () method like this, which supports a CSS attributes, so for example

<div style="font-weight:bold;">bold text</div>

become

<b>bold text</b>

Sclerophyll answered 11/3, 2019 at 12:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.