2

TextViewHTMLテキストを表示するためのカスタムがあります。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ますcolorrgb、などから色を取得するために実装しました。しかし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>
4

1 に答える 1