简体   繁体   中英

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

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

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

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)); 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

In Java class define TextView like this:

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));

If you want to give text color in strings.xml then check out the below code:

<string name="by_continuing_i_confirm_that_i_have_nread_the_privacy_policy">
<font fgcolor='#ffffff' >By continuing, I confirm that I have \nread the</font> <font fgcolor='#2DBBDD' >Privacy Policy</font>
<TextView
    android:id="@+id/yourUniqueTextViewID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World"
    android:textColor="@color/RED" />

Where "RED" is a named constant you have to define under res/values/ in an xml file. Typically i create "colors.xml".

Or see this for a good set of predefined colors: Web colors in an Android color xml resource file

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM