是否有一种方法可以更改部分EditText文本的颜色?
在我的应用程序中,用户可以使用用户名在帖子中标记他的朋友,现在我想在用户仍在键入时将用户名颜色更改为蓝色,以便他知道自己已成功标记了他的朋友(就像在Facebook中标记朋友一样)
我仍然没有任何代码,因为我不知道如何开始!有什么帮助吗?
答案 0 :(得分:0)
您可以在代码中将html插入到textView中,然后可以在文本的特定部分中定义颜色:
myTextView
.setText(
Html.fromHtml(
"Your text<span color='<your color>'>colored part</span> rest of your text"
));
答案 1 :(得分:0)
如果您只需要对EditText
中的用户名进行颜色处理,则可以使用Spannable
。在这种情况下,ForegroundColorSpan
是一个好的开始。
简化的解决方案类似于:
String usernameToLookFor = "michael";
String myString = "Welcome world to michael !!";
//Create spannable string
SpannableString spannableString = new SpannableString(myString);
//Determine the start and end of the span i.e. which section you want colored
//Note: loop it if username appears multiple times in main string
int usernameStart = myString.indexOf(usernameToLookFor);
int usernameEnd = usernameStart + usernameToLookFor.length;
//Apply color spannable to SpannableString
spannableString.setSpan(ForegroundColorSpan(ContextCompat.getColor(context, R.color.highlighted_color)),usernameStart, usernameEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//Set spannable to edit text
myEditText.setText(spannableString);
非常粗略的答案。希望有帮助。