Html.fromHtml()已被弃用,替代方法是什么?

我更新到SDK版本24,现在Html.fromHtml()已被弃用。 而Html类有一个新的方法,额外的参数名为标志,但最低的API是24。

对于较低的API版本,这个函数还有其他的select吗? 我不想为此使用WebView

或者:

  • 在所有API级别使用Html.fromHtml(String) ,或者,

  • 使用Html.fromHtml(String) API级别23和更旧的设备上的Html.fromHtml(String, int)以及API Level 24+设备上的Html.fromHtml(String, int) ,以找出正在运行的设备的API级别上

在这种情况下,“弃用”是提示去寻找双参数方法,但单参数方法仍然有效,并且(很有可能)将在相当长一段时间内这样做。

只是使用

  if (Build.VERSION.SDK_INT >= 24) { Html.fromHtml(String, int) // for 24 api and more } else { Html.fromHtml(String) // or for older api } 

使用Html.fromHtml(String,int)为24 api遵循文档:

https://developer.android.com/reference/android/text/Html.html

其实还有另外一个标志参数的方法

 /** @deprecated */ @Deprecated public static Spanned fromHtml(String source) { throw new RuntimeException("Stub!"); } public static Spanned fromHtml(String source, int flags) { throw new RuntimeException("Stub!"); } 

只需使用fromHtml函数和flag参数。 标志参数是

 public static final int FROM_HTML_MODE_COMPACT = 63; public static final int FROM_HTML_MODE_LEGACY = 0; public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0; public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1;