学android也有一段时间, 一直都是自己摸索, 各种上网查资料, 也明白了不能一味去索取有时间也要分享一些自己的心得 。

最近几天都在写关于android emoji输入的小例子,网上有不少源码还有实现思路,我自己也看了一个emojicon的开源项目, 分析了下实现原理,搞了几个小时也没弄懂,  emojicon的表情符号都经过一定的编码,关键是自己水平有限, 对编码那一块很少涉及。

首先要实现emoji先要弄清楚一些相关的类与继承关系。

CharacterStyle :     

    实现类都可以设置字符的风格。

Spannable  :

    该接口间接的实现了CharSequence, 在android中TextView 的setText方法是接收的CharSequence这点要定要记住.

简单的实现方法:

   利用emoji文件的名子按自己设计的规则生成一个emoji的文本表示。将emoji文本设置到TextView或EditText,  这里的TextView都是要自己去继承后面重写一些方法,将emoji文本设置到TextView中间要对TextView的字符进行查找,找出里面的emoji文本.再通过Spannable来替换成图片。

定义类:   

  Emoji:

     实体类。

  IEmojiPackage    

    表情包, 加载emoji文件。

  

  EmojiManager

    搜索emoji文本,对IEmojiPackage产生的emoji进行集中管理 。

github: https://github.com/yjwfn/androidemoji

apkbus: http://www.apkbus.com/forum.php?mod=viewthread&tid=250715

android实现emoji输入的更多相关文章

  1. Android 实现emoji表情的demo

    Android 实现emoji表情的例子,网上看到的,记录一下. 请看下图 : 项目下载地址:http://download.csdn.net/detail/abc13939746593/741397 ...

  2. Android之获取输入用户名与密码发送短信

    打算在过两三天的时间我就要准备出发去浙江了,所以把之前的资料来个总结. 这都是在课堂上做过的作业. 好了,废话少说,直接上代码. 步骤: 1.设置单击事件2.获取输入的QQ号码与密码3.判断输入获取的 ...

  3. Unity Android设备的输入

    Unity Android设备的输入 1依据屏幕位置输入 有的时候也许是为了整个有些风格的干净,减少屏幕上的UI图标,以至于摒弃了虚拟按键这种常用的输入方式.为了替代虚拟按键的输入方式而选择了依据点击 ...

  4. Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录

    经过一个星期的折腾,最终做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这仅仅是一个单独聊天表情的输入,以及聊天的效果实现.由于我没有写server,所以没有两方聊天的效果. ...

  5. unity inputfield 过滤emoji输入

    unity版本:unity2017.1.5f1 复现步骤:InputField在安卓手机InputField连续输入两个emoji会报错 报错内容: 2020-01-08 19:56:38.366 2 ...

  6. [修正] Firemonkey Android 显示 Emoji (颜文字)

    问题:在 Android 平台下,显示 Emoji 文字,无法显示彩色(皆为黑色),例如 Edit 控件,即使将 Edit.ControlType = Platform 设为平台原生控件,还是没用(真 ...

  7. IOS开发之—— UITextView禁止Emoji输入

    UITextView代理方法:判断 -(void)textViewDidEndEditing:(UITextView *)textView{        if ([self stringContai ...

  8. android Edittext自定义输入字符和类型

    android提供了两种方式 一种是setInputType 一种是setKeyListener 直接上代码,有注释 import android.app.Activity; import andro ...

  9. Android 让输入框输入指定字符的办法

    让输入框输入指定字符的办法 有一个需求 让输入密码的时候只能输入数字字母可见字符 不能输入中文 之前还以为要写代码 还来发现有一个属性可以直接实现 <EditText android:layou ...

随机推荐

  1. 前端开发-Web标准

    Web标准 1理解:结构 => html表现 => css行为 => js(dom + es) WEB标准(结构.表现.行为分离)有哪些优点呢? 易于维护:只需更改CSS文件,就可以 ...

  2. 在.net core wep项目中使用Session

    第1步:添加包引用 Install-Package Microsoft.AspNetCore.Session 第2步:添加代码启用Session 在项目Startup.cs文件的ConfigureSe ...

  3. 美团张志桐:美团 HTTP 服务治理实践

    2019 年 7 月 6 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·上海站,美团基础架构部技术专家张志桐在活动上做了<美团 HTTP ...

  4. 安装python的第三方库pillow

    参考:http://jingyan.baidu.com/article/ff42efa929e6c8c19f220254.html 用Python做图像处理时,需要用到PIL(图像处理库).但是PIL ...

  5. hdu 2767 Proving Equivalences(tarjan缩点)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2767 题意:问最少加多少边可以让所有点都相互连通. 题解:如果强连通分量就1个直接输出0,否者输出入度 ...

  6. codeforces 805 D. Minimum number of steps(数学)

    题目链接:http://codeforces.com/contest/805/problem/D 题意:只有一个操作就是将ab变成bba直到不能变为止,问最少边几次. 题解:这题可以多列几组来找规律, ...

  7. yzoj P2343 & 洛谷 P1437 [HNOI2004]敲砖块

    题意 在一个凹槽中放置了N层砖块,最上面的一层油N块砖,从上到下每层一次减少一块砖.每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如图所示. 如果你想敲掉第i层的第j块砖的话,若i=1,你可以直接 ...

  8. sed一些常用命令

    [转] http://blog.chinaunix.net/uid-20754793-id-177657.html 下面是我学习sed时参照参考书总结的一些常用sed命令,基本上每条语句都进行了调试1 ...

  9. Elasticsearch 顶尖高手(1)

    1.什么是搜索? 百度 = 搜索,这是不对的 垂直搜索(站内搜索) 互联网的搜索:电商网站,招聘网站,新闻网站,各种app IT系统的搜索:OA软件,办公自动化软件,会议管理,项目管理,员工管理 搜索 ...

  10. Java 内省(Introspector)和 BeanUtils

    人生若只如初见,何事秋风悲画扇. 概述 内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息, ...