jme*_*gan 36 java string android textcolor
我的意思是,是否可以将单词字符串中的"This text is blue"更改为蓝色?一定有办法......
<TextView
android:gravity="left"
android:padding="3dip"
android:text="This text is white. This text is blue."
android:textColor="#ffffff"
android:textSize="22dp"/>
Run Code Online (Sandbox Code Playgroud)
ina*_*ruk 119
是的,它可能.为此你需要使用SpannableString和ForegroundColorSpan.
这应该是这样的:
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);
Run Code Online (Sandbox Code Playgroud)

Jas*_*son 11
一种简单的方法是使用HTML并以TextView编程方式将文本设置为.
String text = "This text is white. <font color=\"blue\">This text is blue.</font>";
textView.setText(Html.fromHtml(text), BufferType.SPANNABLE);
Run Code Online (Sandbox Code Playgroud)
试试这个..
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));
Run Code Online (Sandbox Code Playgroud)
而结果将是这样的..
