android显示ios emoji表情符号,IM 使用的 Emoji 表情显示
估计很多人都看到输入法键盘中使用的输入表情的Emoji。
键盘emoji.png
Emoji.png
Emoji使用基础
可以看到在不同的Native Android IOS系统中对应的emoji码显示的图片都不同。
国内这种环境,一般都想统一显示成ios对应样式的表情包的样式。
signal中已经提供了一个比较完善的方案显示自定义表情Emoji
https://github.com/signalapp/Signal-Android
1.添加对应的Emoji资源到asset(png)
asset资源.png
2.自定义EmojiTextView
image.png
3.在setText时替换emoji码显示的图片
image.png
有一个问题需要提醒,就是Emoji的表情符,只能用过双引号一个个隔断,而IOS中显示可以直接使用直接加载一堆Emoji表情(IOS傻瓜式开发做得好啊)
以此为基础。
我们想显示类似于微信那种效果的显示,输入框后加入表情按钮
image.png
Emoji输入方案
一般都要制作成滑动显示的。
这里就有两种方案
1.使用ViewPager,每页嵌套一个RecylerView,然后每一个页取出对应的图像资源
2.使用一个RecylerView滑动完成关联加上SnapHelper
第一种实现比较简便,但是这样比较耗资源且View的复用性不高。
第二种方案看起来是非常好的,但是实现起来肯定有有难度。
第一种方案就直接略过了,介绍第二种。
首先思考哦一个问题,使用recylerView滑动,使用pagerSnapHelper是无法卡位的。需要自顶一个
GridPagerSnapHelper来完成这种操作。
可以查看,直接附上开源代码。
https://github.com/hanhailong/GridPagerSnapHelper
这里需要提示一个虽然你recylerview使用了GridLayoutManager但是你使用的,但是普通的GridLayoutManger要做到横向滑动要使用竖向排列,那么排列效果就会有问题,GridPagerSnapHelper提供自定义的排列方式来满足横向排列。这里显示4行,7列。
GridPagerSnapHelper().apply {
setRow(4)
setColumn(7)
attachToRecyclerView(emoji_recycler)
}
然后编辑indicator的显示。监听滑动,计算出第一显示的item是在第几页。
```
emoji_recycler.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
// 停止滑动,计算当前页数
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
val index = (emoji_recycler.layoutManager as GridLayoutManager).findFirstCompletelyVisibleItemPosition()
emoji_indicator.setCurrentIndicator(index / 28)
}
}
})
emoji_indicator.setIndicators((emoji_recycler.adapter as EmojiPanelAdapter).getPageSize())
class EmojiPanelAdapter(private val context: Context, private val onClick: (emoji: String) -> Unit) : RecyclerView.Adapter() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EmojiViewHolder {
android显示ios emoji表情符号,IM 使用的 Emoji 表情显示相关推荐
- php两字段一列竖排显示,iOS 10 YYLabel 竖排多列文字只能显示一列
代码片段 YYLabel *textLabel = [[YYLabel alloc] init]; textLabel.numberOfLines = 0; textLabel.origin = CG ...
- 在Android系统中使用系统自带的emoji表情
一,对emoji表情的理解 emoji表情是一种表情符号,在代码中它现在其实是一组遵循Unicode的编码,即每一个表情符号都对应了一个Unicode编码.更进一步说,emoji表情实际上是一组Uni ...
- android 自带的表情,在Android系统中使用系统自带的emoji表情
一,对emoji表情的理解 emoji表情是一种表情符号,在代码中它现在其实是一组遵循Unicode的编码,即每一个表情符号都对应了一个Unicode编码.更进一步说,emoji表情实际上是一组Uni ...
- php 微信emoji输出,页面如何输出Emoji表情字符
Emoji表情符号广泛运用于各种的社交软件上,是非常受欢迎的一种字符,如果用语言文字无法表达你内心的冲动,发一个Emoji表情就好了. 对于web而言如何在页面保存和展现这些字符呢?这可不是件容易的事 ...
- android显示ios emoji表情符号,教程:在 Android 上也能用 iOS 新 Emoji 表情
那是一个阳光明媚的周末,我惬意的躺在床上用着我的 Android 机刷微博,看着网上那些段子手,心情无比的舒畅.直到我看见这么一条: 瞬间百万头羊驼从我心头奔过,他到底发了些什么!?为什么我看不见!! ...
- Emoji表情符号兼容方案(适用ios,android,wp等平台)
http://blog.csdn.net/qdkfriend/article/details/7576524 Emoji表情符号兼容方案 一 什么是Emoji emoji就是表情符号:词义来自日语(え ...
- 适用ios,android,wp等平台手机emoji表情符号兼容方案
一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. emoji表情符号,在外国的手机短信里 ...
- ios emjoi java_前端App开发,实际工作中三端(android,ios,前端H5)emoji表情显示解决方案...
想起最近开发APP的时候,产品提的一个需求,用户的帖子正文还有评论内容里,要能够显示emoji表情,因为我们这款app是混合开发的,APP里的发贴,发评论是原生做的(android和ios),但帖子详 ...
- android plist表情,在iOS中的UITextView中不显示笑脸(表情符号)?
我已经存储在plist中通过iPhone所支持的所有单码(表情符).当我直接写为在iOS中的UITextView中不显示笑脸(表情符号)? - (IBAction)sendButtonSelected ...
最新文章
- JSPServlet路径问题
- Matlab系统信息、系统命令和跨平台
- 一个n位的数,去掉其中的k位,问怎样去使得留下来的(n-k)位数按原来的前后顺序组成的数最小...
- eclipse安装反编译插件(附jad下载)
- 怎么改vue项目的标题_如何动态修改Vue项目中的页面title
- keepalived(2)——配置文件
- 数据预处理代码分享——机器学习与数据挖掘 1
- python 正则替换_5分钟速览Python正则表达式常用函数!五分钟就掌握它!
- c语言用户登录成功才能,c语言用户登录.docx
- signature=127e8fab504590e43c26b869ab8a8d06,一种Ⅱ型集中器下电表全无数据故障的现场消缺方法...
- 宁德时代:被美国制裁、与特斯拉谈崩等系谣言 已向公安机关报案
- MyBatis关联映射
- 苹果 macOS 12.4 RC 发布,带来全新 Studio Display 壁纸
- 悉尼大学计算机硕士健康科技,悉尼大学健康科学学院
- 第一台计算机英语句子,20个虚拟语气句子带翻译
- PDFJS集成批注功能
- 基于vue的人机验证
- delphi 龙年窗体 恭喜发财
- 安装SQL Server和SQL Server Management Studio(SSMS)
- linux实用的磁盘大文件及大文件夹查找命令