59

重複の可能性:
TextView 内に複数のスタイルを含めることは可能ですか?

TextView で、テキストの一部を赤で表示し、他の部分を黒で表示したいと考えています。そのコンテンツ (テキスト) は動的に作成され、いくつの単語が赤色になるかわかりません。

html-cssのようにこれを行う方法はありますか?

4

3 に答える 3

100

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);
}
于 2012-04-13T12:40:01.013 に答える
92

この方法を試してください

    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);
于 2012-04-13T12:49:48.103 に答える
7

基本的に欲しいのはSpannableString

完全な例については、これを参照してください。

于 2012-04-13T12:44:12.617 に答える