可能性のある複製:
TextView内に複数のスタイルを持つことは可能ですか?
TextViewのテキストの一部を赤で表示し、他の部分を黒で表示するようにします。コンテンツ(テキスト)は動的に作成され、赤色で表示される単語の数はわかりません。
Html-cssのようにこれを行う方法はありますか?
Spannableを使用して、目的を達成できます。
String text = "This is <font color='red'>red</font>. This is <font color='blue'>blue</font>.";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textView.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY), TextView.BufferType.SPANNABLE);
} else {
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
}
この方法を試してください
TextView tv = (TextView)findViewById(R.id.tv);
Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
wordtoSpan.setSpan(new ForegroundColorSpan(Color.RED), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(wordtoSpan);
基本的に欲しいのはSpannableString
です
完全な例については、 this を参照してください。