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

后端 未结 9 1777
暗喜
暗喜 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:12

    It's simple really. Just add these in your value/string.xml

    <String name = 'name_of_the_String'><font color='#000000'>This is black</font><font color='#ffffff'>This is white</font></string>
    

    Then add the name of that string to your XML resource file

    0 讨论(0)
  • 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

    0 讨论(0)
  • 2020-11-27 05:14

    I am use for a change star if service "Onward"

    String c = "*" + getResources().getString(R.string.rupee) + str_pay_at_store;
    SpannableString spannable2 = new SpannableString(c);
    spannable2.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, 
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv_payatstore.setText(spannable2);
    

    You can see like this

    0 讨论(0)
提交回复
热议问题