(Android)TextViewのsetTextにhtmlフォーマットを使用する。

Androidで開発をしていて、TextViewを使用した処理を作っていると文字の色を変えたくなる時があります。
でもsetTextColorメソッドで変えると全ての文字の色が変わってしまう。
そうじゃなくて一部の文字の色だけを変えたい。
そんな時は以下の処理がおすすめです。

TextView textView = new TextView(getContext());
String htmlText = "<font color=#ff0000>◆サンプ</font><font>ルテキスト</font>";
textView.setText(Build.VERSION.SDK_INT >= 24 ? Html.fromHtml( htmlText , 1 ) : Html.fromHtml( htmlText ));

※font 手前の<はブログ用に全角にしてあります。

Html.fromHtmlはAPIレベルによって引数が変化するため、
Android7(24)以上の場合と、それ以下の場合で分岐させています。
参考URL : https://developer.android.com/reference/android/text/Html.html

上記の処理であれば、うまくいくと以下のような表示になります。
◆サンプルテキスト

この記事へのコメント