更改部分edittext文字颜色

时间:2018-06-26 22:32:04

标签: android android-layout android-edittext

是否有一种方法可以更改部分EditText文本的颜色?
在我的应用程序中,用户可以使用用户名在帖子中标记他的朋友,现在我想在用户仍在键入时将用户名颜色更改为蓝色,以便他知道自己已成功标记了他的朋友(就像在Facebook中标记朋友一样)
我仍然没有任何代码,因为我不知道如何开始!有什么帮助吗?

2 个答案:

答案 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);

非常粗略的答案。希望有帮助。

相关问题