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 fo
There are three ways to change the color of some text inside a textview.
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));
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));
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
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
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));
<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