6

以下に示すように、TextViewウィジェットがあります

<TextView 
        android:text="@string/inputText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

inputText は Strings.xml で次のように定義されています。

<String name="inputText">The value of input is positive now</String>

ここで、テキスト全体を茶色で表示し、「ポジティブ」のみを緑色で表示したいと考えています。

そうする方法はありますか?簡単に言えば、私の質問は、同じテキストビューに対して同時に複数のカラーリングを行うことです

4

5 に答える 5

15

これはこの質問の複製です TextView 内の 1 つの単語のテキストの色を変更します

String first = "This word is ";
String next = "<font color='#EE0000'>red</font>";
t.setText(Html.fromHtml(first + next));
于 2013-02-27T12:10:43.947 に答える
7

CDATA内部で使用strings.xmlして、何らかの HTML 形式で文字列を保存し、Html.fromHTMLこれを 内に表示することができますTextView

文字列.xml

<string name="inputText">
    <![CDATA[
      <p>The value of input is <font color='#00ff00'>positive</font> now.</p>
    ]]>
</string>

Java コード

myTextView.setText(Html.fromHtml(getString(R.string.inputText));
于 2013-02-27T12:11:26.397 に答える
2

このアプローチを使用してください: 文字列を html でフォーマットします

String text = "<font color=#cc0029>Text with Color first</font> <font color=#ffcc00>Text with Color second</font>";
yourtextview.setText(Html.fromHtml(text));
于 2013-02-27T12:10:42.720 に答える
1

Spannableを使用してそれを行います。

String text = "<font color='brown'>The value of input is </font><font color='green'> positive </font><font color='brown'> color </font>";
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
于 2013-02-27T12:18:53.153 に答える
0

これを試して、

TextView tv = (TextView)findViewById(R.id.mytextview01);

SpannableString WordtoSpan = tv.getText();

WordtoSpan.setSpan(new ForegroundColorSpan(Color.GREEN), 23, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(WordtoSpan);
于 2013-02-27T12:21:21.083 に答える