Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Text view with different colored texts in xml code

I need my textview to have different colored texts. Also I need to do this from xml code, non from java code. Is there anyone who knows some way for doing this? Thanks

e.g. I have sentence "This is red". I need words to be green, and word red to be red.

like image 759
Hayk Nahapetyan Avatar asked Jul 09 '13 21:07

Hayk Nahapetyan


2 Answers

There are three ways to change the color of some text inside a textview.

  1. through strings.xml file in (res>values), using the tag (<![CDATA[<p>This is green <font color='hexvalue of red'>and this is red</font>.</p> ]]>) and then declaring the textview in java code as myTextView.setText(Html.fromHtml(getString(R.string.myText));

  2. through java code, using the HTML tag 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. through Spannable text using java code.

    Spannable span = new SpannableString("My String");

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

    myTextView.setText(span);

If there are other ways to do it then I'm not aware of them. Hope this helps

like image 96
Riz Khan Avatar answered Nov 05 '22 20:11

Riz Khan


Refer your text to string.xml and using html font tag , by using that way you can change each letter color also .

just add this in java for that string:

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

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

and

In string.xml:

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

]]> 
  </string>

hope help you

like image 15
androidqq6 Avatar answered Nov 05 '22 18:11

androidqq6