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