TextView
HTMLテキストを表示するためのカスタムがあります。Nougat より前のデバイスでは機能します。Nougat で既にご存じのとおり、fromHtml は非推奨であり、フラグが必要です。したがって、私のコードは次のようになります。
Spannable s = getRichText(text);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
super.setText(Html.fromHtml(s.toString(), Html.FROM_HTML_MODE_COMPACT, this, new HtmlHandler(getContext())), BufferType.SPANNABLE);
} else {
super.setText(Html.fromHtml(s.toString(), this, new HtmlHandler(getContext())), BufferType.SPANNABLE);
}
問題は、HtmlHandler
クラスが呼び出されないことです。(私はすでにすべてのフラグを試しました)。OnHtmlHandler
などのタグやスタイルを扱いbackground-color
ますcolor
。rgb
、などから色を取得するために実装しました。しかしrgba
、 Nougat では色を「読み取って」表示できるhls
ため、Nougat では 16 進数の色のみを受け入れます。fromHTML
なぜこうなった?どうすれば色を手に入れることができますか?何かわからなかったり、詳細が必要な場合は、お知らせください。
テストに使用するhtmlは
<p><strong>Server</strong><u> message</u><strong><u>!!!</strong></u> <span style="background-color: rgb(255,0,0);">Not working on Nugat</span></p>