自定义表情输入键盘

本文介绍了如何在Android项目中实现自定义表情输入键盘,通过分析一个简单的GitHub项目,详细讲解了表情键盘的布局设计,包括表情组的显示隐藏、表情布局、分页器的实现,以及EditText与表情键盘的交互。同时提到了使用Fragment进行数据传递的注意事项。
摘要由CSDN通过智能技术生成

最近,在项目中集成了环信的即时通讯,其中使用到了他的easeUI库,这里集成了一些聊天界面和联系人界面,出于好奇,我便去看了看其中的代码,发现比较复杂,于是想自己做一个表情输入的键盘,easeui项目中的国语复杂,所以我先找了一个比较简单的项目来练手。项目github地址:https://github.com/shinezejian/emotionkeyboard/blob/master/src/main/res/layout/include_emotion_bar.xml

这个项目实现的功能就是表情软键盘的开发

主界面

edittext界面

其实项目开发的难点就是下面的自定义表情软键盘,我想要实现这个效果,首先要考虑下面的问题

1.下方的表情组的显示隐藏问题

2.其中表情的摆放问题

3.最底部的分页器如何实现

关于本Demo: 模仿新浪微博的表情操作,借鉴其他开发者的demo并加以完善 功能: 1、仿新浪微博的表情键盘,可以输入自定义表情、emoji表情 2、使用过的表情按时间顺序显示在最近使用的表情中 3、表情点击能输入到textView中,长按可预览表情 4、删除键长按可连续删除 5、能将一串包含图片表情的attributedText中的图片表情转化为相应的字符串(作为传输到后台使用) 6、能将一串普通字符串中包含的表情字符串转化为图片表情的attributedText(后台返回字符串数据可直接转化作为前端使用) 7、在textView中手动输入表情对应的字符串,能生成相应的图片表情,并且selectedRange会重新设置到合理的位置 8、能拷贝图片表情,拷贝结果为图片表情对应的字符串,粘贴到其他普通的textVeiw中会以该表情对应的字符串显示 缺点: 1、表情键盘有一点点与新浪微博的不一样,基本一致,可忽略 2、图片表情在textView中的间距不知道如何改变(新浪微博的表情间距是有稍微一点距离的,显得不太拥挤,并且点击切换光标时很容易,不会像我一样老是弹出UIMenuController)【尝试各种方法都不行,望懂的大神可以帮助我一下】 3、文字转表情的方法应该与新浪微博的不一样,我的实现很复杂(测试比较了我的和新浪微博的转化,先在textView中输入几百上千个表情,此时textView输入会变得很慢,新浪微博也是如此,因此新浪微博应该也是有遍历、全文转化的过程,在同样上千个表情存在的情况下,快速输入"123456789",等待反应时间,新浪微博的大概几秒钟后显示出来,而我的textView则要十几秒才能显示出来,因此判断我的转化方法不太好) 虽然在几百上千个表情的情况下输入反应很慢,但是一般不会发那么多表情,在表情不多的情况下我的转化速度是可以忽略的 感谢读者: 感谢每一位支持的读者!如果有bug、不足的地方,或上文中我提到的能帮到我的地方,都可以给我留言,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值