@评论人 加 改变 字体颜色 , 和emoji 的集成

原创 2016年06月01日 07:41:33

昨天 和我 一起 毕业的 小伙伴 从 很小的 外包公司, 离职了; 

感觉到有点难过; 唉, 人只有在 失去后才会觉得,以前是多么美好; 

代码 :

' 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





版权声明:本文为博主原创文章,未经博主允许不得转载。

Android中更改字体颜色的多种方法

在开发中,偶尔要单独更改TextView中某些字的字体颜色,慢慢摸索出几种方法,之后有发现会再更新... 1.通过SpannableStringBuilder来实现,它就像html里边的元素改变...
  • hwp88110
  • hwp88110
  • 2017年04月13日 17:12
  • 390

CSDN-markdown编辑器语法——字体、字号与颜色

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。但是它本身是不支持修改字体、字号与颜色等功能的!  CSDN-markdow...
  • testcs_dn
  • testcs_dn
  • 2015年05月14日 12:33
  • 99755

C++控制输出的字体颜色

C++控制台程序运行时输出框默认的文字颜色是白色,所以我常称其输出框为黑白框。但是这个文字样式不是固定不变的,是可以改变颜色的字体的。方法有两种: 一、设置输出框的框体属性。在运行时弹出的输出框标题...
  • u012424148
  • u012424148
  • 2016年10月11日 22:25
  • 5231

安卓TextView部分字体改变颜色以及背景

> 1. 第一种使用SpannableStringBuilder和 BackgroundColorSpan //首先给赋值颜色 ForegroundColorSpan redSpan = n...
  • u010023795
  • u010023795
  • 2017年02月09日 18:17
  • 740

更改TextView字体颜色

更改TextView字体颜色 新建一个继承Activity类的TextViewColorActivity,并设置布局文件为:textviewcolor.xml。 要设置TextView的字体颜色,...
  • lyx_xiaofeng
  • lyx_xiaofeng
  • 2016年02月26日 22:30
  • 330

更改以ArrayAdapter作为数据源的listview字体

希望能对初学者像我这样的有些帮助; //listview in fragment on the left of screen ArrayAdapter ad = new ArrayA...
  • java1234321
  • java1234321
  • 2015年02月27日 14:44
  • 1293

Android中设置部分字体的颜色改变,并且能点击

Android中设置部分字体的颜色改变,一共有两种方法: 1, 使用SpannableStringBuilder来实现 2, 使用 html 来实现 Andorid中设置部分字体的颜色改变,且能点...
  • WOW875620051
  • WOW875620051
  • 2016年07月23日 01:16
  • 1935

Android的ListView子Item选中改变TextView字体颜色

Android的ListView子Item选中改变TextView字体颜色。
  • ww897532167
  • ww897532167
  • 2017年04月29日 23:56
  • 973

实现一段字符串中部分内容字体颜色大小变化

在label、button等等控件中,都可以对需要赋值的字符串设置字体属性,变量名为attributedText: @property(nullable, nonatomic,copy) NSAt...
  • yancareer
  • yancareer
  • 2015年11月30日 22:16
  • 669

Linux和Windows下控制台字体颜色设置

colored_fputs() colored_fputs()函数用于将输出的文本“上色”并且输出。在这里有一点需要注意:Windows和Linux下控制台程序上色的方法是不一样的。Windows...
  • tkp2014
  • tkp2014
  • 2015年06月26日 22:26
  • 662
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:@评论人 加 改变 字体颜色 , 和emoji 的集成
举报原因:
原因补充:

(最多只允许输入30个字)