What I mean is, is it possible to change the text "This text is blue" to the color blue in a single string? There must be a way...
<TextView
android:gravity="left"
android:padding="3dip"
android:text="This text is white. This text is blue."
android:textColor="#ffffff"
android:textSize="22dp"/>
Yes, its possible. For this you need to use SpannableString
and ForegroundColorSpan
.
This should look something like this:
SpannableStringBuilder builder = new SpannableStringBuilder();
String red = "this is red";
SpannableString redSpannable= new SpannableString(red);
redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, red.length(), 0);
builder.append(redSpannable);
String white = "this is white";
SpannableString whiteSpannable= new SpannableString(white);
whiteSpannable.setSpan(new ForegroundColorSpan(Color.WHITE), 0, white.length(), 0);
builder.append(whiteSpannable);
String blue = "this is blue";
SpannableString blueSpannable = new SpannableString(blue);
blueSpannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, blue.length(), 0);
builder.append(blueSpannable);
mTextView.setText(builder, BufferType.SPANNABLE);