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

后端 未结 9 1841
暗喜
暗喜 2020-11-27 04:37

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



        
9条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-27 05:13

    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

提交回复
热议问题