学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:
实体类。
AbsEmojiFactor
emoji抽象工厂, 加载emoji文件。
EmojiManager
搜索emoji文本,对AbsEmojiFactor产生的emoji进行集中管理 。
其他的都是些ui布局,适配器什么的,不是核心部分就不写出来呢, 上张图后上代码 。
UI过的去就行 哈哈.
项目编码是utf-8乱码请修改编码 , 下载完后用压缩软件解压就行呢。
百度网盘下载: http://pan.baidu.com/s/1jGzHi8Q
android实现emoji输入