1. 程式人生 > >Android開發中Html.fromHtml(String source)方法過時的替代方法

Android開發中Html.fromHtml(String source)方法過時的替代方法

前言

我們在開發中難免會遇到一個字串中有不同顏色的字型或者有不同大小的字型這樣的需求,所以可能會用到Html.fromHtml(String source) ,程式碼如下:

String str2 = "今天<font color='#FF0000'><small>天氣不錯</small></font>";
tv2.setText(Html.fromHtml(str2));

一、問題

在API level 24及以上這個方法是過時的。

二、解決辦法

API Level 24或以上使用2個引數的方法,需要新增一個flag, Html.fromHtml(String source, int flags) 。程式碼如下:

TextView tv  = (TextView) findViewById(R.id.tv_text);
String content = "今天<font color='#FF0000'><small>天氣不錯</small></font>";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
    tv.setText(Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY));
} else {
    tv.setText
(Html.fromHtml(content)); }

其中兩個的flags所代表的意思分別是:
FROM_HTML_MODE_COMPACT:html塊元素之間使用一個換行符分隔
FROM_HTML_MODE_LEGACY:html塊元素之間使用兩個換行符分隔