应用背景

不知道大家是否开发过类似朋友圈,论坛之类的功能。通常在这个过程中我们要有发表情的需求。LZ当时遇到了这个需求,所以完成功能后,就将发表情这个功能封装了一下。使用非常简单,只需要三两行代码,你就能在你的项目中实现发表情的功能啦。

效果图展示


实现步骤

1.将以下类与资源文件依次导入到你自己的项目中




2.在某输入页面中的xml中添加布局文件

比如我这个效果图就是一个Activity。那我就在Activity的根部局当中添加如下代码


         <include
            android:id="@+id/chat_face_container"layout="@layout/chat_face_container"android:visibility="gone" />

这里应该注意xml页面的搭建逻辑,chat_face_container应该在一个LinearLayout的最下面,整个LinearLayout应该是附着在屏幕底部。具体请参考demo


3.在代码中的配置

非常非常的简单,只需要一行代码即可

//param1:你加入当前页面中的布局,param2:你的输入框,param3:contextChatFaceView chatFaceView = new ChatFaceView(chat_face_container, edit_input_text, this);

假如ios发来一条带有表情的消息,如何将字符串消息转换为带有表情的字符串?

调用如下方法即可


SpannableStringBuilder ssbC = FaceUtils.getInstance(context).toSpanText(edit_input_text.getText().toString());
tvshow2.setText(ssbC);

另外还有一些常用api

    /*比如:为输入框添加点击事件,点击输入框让chatview消失*/edit_input_text.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {chatFaceView.closeChatView();}});/*比如:为表情按钮添加点击事件,点击让chatview消失或显示*/btn_chat_emoji.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {chatFaceView.openOrCloseChatView();}});

核心要点

1.发送表情实则是发送的表情对应的String编码,这个编码在本案例中就在asset文件下

2.点击表情后,表情图片如何显示在了EditText中?而不是以原本String格式显示?

这是通该方法实现

    /*** * @param png 文件名,不含路径* @return*/private SpannableStringBuilder getFace(String png) {SpannableStringBuilder sb = new SpannableStringBuilder();try {//          String tempText = "[" + png + "]";String tempText =FaceUtils.getInstance(mContext).GetFaceMap(0).get(png);sb.append(tempText);sb.setSpan(new ImageSpan(mContext, BitmapFactory.decodeStream(mContext.getAssets().open("face/default/" + png))), sb.length()//                          .decodeStream(mContext.getAssets().open(png))), sb.length()- tempText.length(), sb.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);} catch (Exception e) {e.printStackTrace();}return sb;}

[源码下载地址:http://download.csdn.net/detail/qq_23347751/9650522]
[转载请注明出处:http://blog.csdn.net/qq_23347751/article/details/52785938 ]

Android之一分钟完成发表情功能相关推荐

  1. Android 支持表情功能

    概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用ImageView去设置图片实现的, 表情一般会嵌套在文本 ...

  2. Android 表情功能的完整处理方案

    概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用ImageView去设置图片实现的, 表情一般会嵌套在文本 ...

  3. android 评论发表情,安卓手机怎么在微信朋友圈评论发表情包?

    核心提示:目前,微信的最新版本更新了朋友圈评论表情包的功能,也就是说用户可以朋友圈开启"斗图模式"啦!但是有些安卓系统的小伙伴发现,自己更新了微信后似乎也不能在朋友圈发评论,具体是 ...

  4. android 自动发彩信,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  5. Android studio 实现打电话发短信浏览网页功能 android开发小实验

    Android studio 实现打电话发短信浏览网页功能 android开发小实验 目标: android studio 实现打电话 发短信 浏览网站的功能 先在布局里面定义几个按钮 分别为 打电话 ...

  6. android+发短信示例,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  7. android 新浪微博客户端的表情功能的实现

    这是一篇好文章,我转来收藏,技术的最高境界是分享. 最近在搞android 新浪微博客户端,有一些心得分享 弄android客户端表情功能可以用以下思路 1.首页把新浪的表情下载到本地一文件夹种,表情 ...

  8. Android自定义表情功能的实现

    Android开发中经常用到评论.回复.和发送聊天信息的功能开发,这其中就有表情的插入发送功能,经过长时间的开发总结,先封装出插入表情的功能实现代码开源给大家,共大家参考,共同学习进步: 1.拷贝表情 ...

  9. android studio发邮件功能,Android发送邮件的方法实例详解

    本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的.如何实现它呢?下面以简单的例子进行说明. 程序如下: import ...

最新文章

  1. MATLAB中文件的读写和数据的导入导出
  2. python datasets_python基础之sklearn.datasets
  3. 慎重使用volatile关键字
  4. wolive-在线客服系统源码_如何搭建在线客服系统?
  5. C++笔记——指针函数/函数指针
  6. 为什么女生会有体香?
  7. LeetCode 1236. 网络爬虫(BFS/DFS)
  8. Mybatis Generator 配置详解
  9. 字符串、数组、randomAccessFile 中length的异同
  10. 复数相关的等式及证明
  11. Qt5学习笔记之串口助手四:增加16进制/ASCII切换、周期发送
  12. kubernetes视频教程笔记 (37)-部署 EFK 平台 日志收集 展示
  13. ad怎么批量改元器件封装_在AD软件中的PCB界面如何批量修改封装?
  14. VC-应用程序正常初始化失败-0xc0150002
  15. Java面试题目和答案
  16. 浏览器出现ERR_PROXY_CONNECTION_FAILED 错误代码
  17. golang学习(三)—— 数组、切片、map
  18. 清除Chrome浏览器下默认浅黄色背景(保存密码时出现)
  19. PHP头条爬虫,今日头条爬虫分析-爬取用户发的所有内容
  20. CorelDRAW图片导出变色,如何解决?

热门文章

  1. iPhone语音备忘录删除了怎么恢复?恢复备忘录,只需3个方法!
  2. 设计模式:简单工厂模式与工厂生产模式的区别
  3. 燕千云 YQCloud 数智化业务服务平台 发布1.12版本
  4. ESP8266 Mesh发包流程介绍
  5. win8计算机usb无法识别网络打印机,Win8.1系统无法连接共享打印机如何解决
  6. Python 优先级队列
  7. A - 过山车(匈牙利算法)
  8. 开店攻略: 如何开婴幼儿用品店 销售中必备的四项基础修炼
  9. 机器学习特征工程之英文中文文本的特征提取
  10. iPhoto的删除动画