第一部分:准备工作(从github上下载源代码)
https://github.com/w446108264/AndroidEmoji
https://github.com/w446108264/XhsEmoticonsKeyboard
AndroidEmoji部分,跑demo是没有问题的;XhsEmoticonsKeyboard部分demo依赖于AndroidEmoji1.0.0版本,然而AndroidEmoji最新版本为1.3与1.0.0不兼容,且不知道为何AndroidEmoji1.3我也compile不成功。所以,最后我新建了一个项目,导入对应的库,整合两个demo的示范页面。代码准备如下,AndroidEmoji1.0.0从github-releases中下的源码。
第二部分:搭建demo
1、新建一个空项目;
2、实现AndroidEmoji调试:
AndroidEmoji源码中的emoji目录作为moudle导入项目;
AndroidEmoji源码中simple里的相关页面和逻辑代码,复制到项目主程序app中做为主程序
(主要是activity,以activity页面为引,再搬下工具类、layout之类的,缺什么从simple中找到对应的复制过来就好)。
3、AndroidEmoji的demo效果跑起来后,改变代码结构,新增一个MainAcivity,页面上放两个按钮,分别做到AndroidEmoji和XhsEmoticonsKeyboard的demo跳转;
4、实现XhsEmoticonsKeyboard调试:
XhsEmoticonsKeyboard源码中的library、reclib_qq、reclib_testmotions目录分别作为moudle导入项目;
XhsEmoticonsKeyboard源码中app里的以activity为引线拎出来,缺什么复制什么,由于XhsEmoticonsKeyboard部分的demo依赖的是AndroidEmoji1.0.0版本,所有部分需要的代码上面导入的emoji中是缺少的,缺的部分需要到AndroidEmoji1.0.0中找到复制到emoji的对应代码里就好。
第三部分:demo分析记录
1、拆解XhsEmoticonsKeyBoard
竖着:线、主框、键盘view;
主框:语言/文字切换按钮;
按住录音/输入框+表情face;
更多媒体操作/发送。
键盘view:viewpager、指示器indicator、工具栏(多素材库)
2、多素材库基于assets(zip、png直接放目录、颜文字文档、emoji)
准备自定义图片素材zip的时候,注意打包方式,要求解压后的第一级就是图源,否则加载不出来
3、键盘viewpager的样式:文本样式、图片样式、图片+样式;
4、输出类型(聊天记录):文本(包括emoji)、图片
最后:
1、样式上仅作为布局参考,结构还是不错的,具体要看产品给怎样的设计~
2、emoji资源包的解压代码XhsEmoticonsKeyboard和AndroidEmoji两处的demo有些不同,确定下zip解压后的目录和对应demo一致,就能解压加载成功(可以考虑用相同文件名的不同图片替换显示图库)