web-dev-qa-db-ja.com

XMLコードで異なる色のテキストを使用したテキストビュー

textviewに異なる色のテキストが必要です。また、Javaコードではなく、xmlコードからこれを行う必要があります。これを行うための方法を知っている人はいますか?ありがとう

例えば「これは赤い」という文があります。言葉は緑で、Word redは赤である必要があります。

11
Hayk Nahapetyan

テキストをstring.xmlで参照し、htmlフォントタグを使用して、各文字の色を変更することもできます。

これをJavaにその文字列に追加します:

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

  tv.setText(Html.fromHtml(getString(R.string.any_text)));

そして

String.xml内:

 <string name="any_text">
 <![CDATA[ <b><font color=#ff0000>write</b> your <b><font color=#0000ff>text</b> here .

]]> 
  </string>

あなたの助けを願っています

14
androidqq6

テキストビュー内の一部のテキストの色を変更するには、3つの方法があります。

  1. (res> values)内の_strings.xml_ファイルを介して、タグ(_<![CDATA[<p>This is green <font color='hexvalue of red'>and this is red</font>.</p> ]]>_)を使用し、次にテキストビューをJava code as myTextView.setText(Html.fromHtml(getString(R.string.myText));で宣言します

  2. 〜Javaコード、HTMLタグを使用String text = "<font color='hexvalue of green'>This is green</font> <font color='hexvalue of red'>and this is red</font>."; myTextView.setText(Html.fromHtml((text));

  3. Javaコードを使用してSpannableテキストを介して。

    _Spannable span_ = new SpannableString("My String");

    span.setSpan(new ForegroundColorSpan(Color.RED), start_position, _end_position,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);_

    myTextView.setText(span);

それを行う他の方法がある場合、私はそれらに気づいていません。お役に立てれば

12
Riz Khan

Javaクラスでは、次のようにTextViewを定義します。

TextView tv = (TextView) findViewById(R.id.text1);
String text = "<font color=#cc0029>write any thing here</font> "+
              "<font color=#ffcc00>write any thing here 2</font>";
tv.setText(Html.fromHtml(text));
0
user3579830