如何将带格式的文本添加到编辑文本中?

时间:2013-01-11 03:54:15

标签: android android-edittext

enter image description here

图片来自名为kakao story的应用。

假设有一个帖子包含任何sns应用程序的评论列表 单击评论时,会在编辑文本中插入评论者的用户名以指示my new comment is a reply to the user
(您不能多次添加相同的名称。)
当您按退格键删除名称时,组成名称的整个字符(例如,示例中的chabeau)将被1-backspace删除。

我正在尝试模仿行为,并想要一些指示如何实现它或搜索什么。

2 个答案:

答案 0 :(得分:2)

如果您正在搜索气泡视图。您可以通过创建android.text.style.DynamicDrawableSpan.ImageSpan的子类来实现它,该子类将EditText字符串的一部分转换为格式化的span

SO Question将为您提供有关创建格式化范围的基本知识。

This是使用editext自定义spans的好教程。

要一次删除整个单词,您可以使用SPAN_EXCLUSIVE_EXCLUSIVE属性。

下面的代码将格式化字符串的前四个字符,希望这会给你一些提示。

final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");
final ForegroundColorSpan fcs
    = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 

// Span to set text color to some RGB value
sb.setSpan(fcs, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

yourTextView.setText(sb);

答案 1 :(得分:0)

EditText et = (EditText) findViewById(R.id.edit1);
et.setTextColor(Color.parseColor("yourColorCodeHere"));