Is it possible to change the text color in a string to multiple colors in Java? Is it possible to change the text color in a string to multiple colors in Java? android android

Is it possible to change the text color in a string to multiple colors in Java?


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

enter image description here


A simple way to do it is to use HTML and set the text to the TextView programmatically.

String text = "This text is white. <font color=\"blue\">This text is blue.</font>";textView.setText(Html.fromHtml(text), BufferType.SPANNABLE);


Try this..

TextView update= (TextView) dialog.findViewById(R.id.address);String colorText= "Driver is nearby "                + "<font color=\"#E72A02\"><bold>"                + "43, KR Rd, Tata Silk Farm, Jayanagar"                + "</bold></font>"                + " and he is "                + "<font color=\"#B92000\"><bold>"                + "11 km"                + "</bold></font>"                + " & "                + "<font color=\"#B92000\"><bold>"                + "20 mins"                + "</bold></font>"                + " away from your current location.";        update.setText(Html.fromHtml(colorText));

and the result will be like this..

result