HTMLタグでテキストビュー内の文字列を装飾

エディットテキストテキストビュー全体で文字色を変更するにはsetTextColor関数などを使います。たとえば、

TextView textView = (TextView)findViewById(R.id.textView);
textView.setTextColor(R.color.red_color);

このようにするとR.color.red_colorで表されるリソースの色がテキストの文字色になります。

しかし、テキストの一部の色を変えるようなメソッドは用意されていません。そこでHTMLタグを使います。

HTMLタグの使用方法

例えばビュー内の色を変えたい文字列をfontタグで囲み、その文字列をHTMLに変換するのにHtmlクラスを使います。次のように一部の文字列を変化させることが可能です。

EditText editText = (EditText)findViewById(R.id.edit_text);
editText.setText(Html.fromHtml("<font color=\"red\">" + "red text" + "</font>"));

注意 : fromHtmlメソッドに渡す文字列中の"\"に置き換えています。

この例では"red text"という文字列が赤色で表示されます。

文字列ないでタグを使い、それをHTMLに変換するだけでよいので非常に簡単です。

fromHtmlで使用可能なテキストを装飾するタグには以下のものがあります。

タグ利用可の属性使われ方
<b>無し太字にします。
<u>無し下線を引きます。
<i>無し斜体にします。
<font>size, color, facecolor属性とface属性でそれぞれ文字色やフォントを変えます。
<sup>無し上付き文字を表示します。
<sub>無しした付き文字を表示します。
<big>無し相対的に文字を大きくします。
<small>無し相対的に文字を小さくします。

テキスト装飾以外の用途も合わせれば他にも使えるタグはあります。(<img>など)

ただし、実際のHTMLと違って使える属性やタグには制限があります。

タグをビューで使うときの注意点

テキストビューをタグだけで簡単に装飾できますが、その際、注意しなければならないこととして以下の点があります。

関連項目
プライバシーポリシー