昨天 和我 一起 毕业的 小伙伴 从 很小的 外包公司, 离职了;
感觉到有点难过; 唉, 人只有在 失去后才会觉得,以前是多么美好;
代码 :
' emoji 来之 网上 开源 的库 ; 作者 teambition
//这里的评论内容,最好让服务器吧 , @ 谁的名字, 也返回来,我替换掉他, 让他 颜色变变, 可点击;
commentTextContent = oneShiComment.getCommentTextContent();
String[] split = oneShiComment.getBeiAiTeName().split(",");
String temp="";
String replaceAfter="";
//通过服务器我拿到了 getBeiAiTeName 艾特人的名字 , 分隔开, 然后 和返回的 评论内容 比较,如果包含,就把他改变颜色,
//然后用改变后颜色的 字符串, 继续replaceAll,改变颜色 , 然后 把HTML格式字符串 , 用 fromHtml 转化成 颜色 结果,
// gethandlerEmojiTextToAite 这个方法吧 字符串中包含表情转化表情显示出来
for (int i = 0; i < split.length; i++) {
String name = split[i];
if (commentTextContent.contains(name)) {
if (!TextUtils.equals(temp, "")){
replaceAfter = temp.replaceAll(name,"<font color=\"#00bbff\">"+name+"</font>");
}else{
replaceAfter = commentTextContent.replaceAll(name,"<font color=\"#00bbff\">"+name+"</font>");
}
temp=replaceAfter;
}
}
Spanned spanned = Html.fromHtml(temp);
SpannableStringBuilder ss = EmojiUtil.gethandlerEmojiTextToAite(spanned, mContext);
holder.tv_text_content.setText(ss);
原作者的表情 不能 直接接受 Spanned格式, 我简单 重载了下 :
public static SpannableStringBuilder gethandlerEmojiTextToAite(Spanned content, Context context) throws IOException {
SpannableStringBuilder sb = new SpannableStringBuilder(content);
String regex = "\\[(\\S+?)\\]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(content);
Iterator<Emoji> iterator;
Emoji emoji = null;
while (m.find()) {
iterator = emojiList.iterator();
String tempText = m.group();
while (iterator.hasNext()) {
emoji = iterator.next();
if (tempText.equals(emoji.getContent())) {
//转换为Span并设置Span的大小
sb.setSpan(new ImageSpan(context, decodeSampledBitmapFromResource(context.getResources(), emoji.getImageUri()
, dip2px(context, 18), dip2px(context, 18))),
m.start(), m.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
}
}
}
return sb;
}
又简单 改了下, 让 在 输入框里有表情 :
/** 拼接到最后 让表情 */
try {
if (index < 0) {
SpannableStringBuilder gethandlerEmojiText = EmojiUtil.gethandlerEmojiText( emoji.getContent(), this);
editable.append(gethandlerEmojiText);
} else {
SpannableStringBuilder gethandlerEmojiText = EmojiUtil.gethandlerEmojiText( emoji.getContent(), this);
editable.insert(index, gethandlerEmojiText);
}
} catch (IOException e2) {
e2.printStackTrace();
}//自定义emoji