安卓怎么用emoji

可以用微信小程序,具体 *** 作步骤如下:

1、首先我们在微信主页往下滑。

2、下滑之后就可以看到微信小程序的页面,点击三个点点的按钮。

3、这个时候就可以看到右上角有一个搜索按钮,点击。

4、这个时候会出来一个搜索框,在上面输入“emoji表情符号大全”进行搜索。

5、点击第一个就是我们要找的小程序。

6、然后我们就可以看到这个小程序,里面有很多的emoji,随便选择自己喜欢的,点击即可复制。

7、返回到微信主页面,找到想给他发表情的这个人。

8、这个时候在输入框中直接粘贴,就可以粘贴刚刚复制好的emoji表情啦。

如果您的设备上的emoji表情很少,有几种可能的原因:

1. 设备或软件版本过旧:如果您的设备或软件版本过旧,可能缺乏某些emoji表情。建议您更新设备或软件版本以获取更多emoji。

2. 设备语言设置问题:有时候,某些emoji表情只在特定语言环境下可用。请检查您设备的语言设置,尝试将其更改为英语等通用语言(如果您不使用英语作为默认语言的话)。

3. 应用程序支持问题:一些应用程序可能没有更新到最新的emoji表情库,导致无法显示最新的emoji表情。请更新应用程序以获取更多的emoji表情。

4. 区域限制:如果您位于某些国家或地区,某些emoji表情可能无法显示。这可能是由于某些政策或法规所致。

总之,如果您想要使用更多的emoji表情,请确保您的设备和软件版本是最新的,并检查您的语言设置和应用程序支持情况。

Emoji从最早开始到现在,比较通用的是两种编码方案,分别是Softbank和Unicode,android版微信早期也是使用Softbank编码,然后客户端根据表情对应的Softbank编码使用SpannableString在TextView, EditText中显示成对应的表情,此时Emoji表情的集合还不是很多,微信只打包进去了大概400多个左右,在早期可以满足大部分Emoji表情的显示需求

但是,随着Unicode 6.0以及Unicode 7.0的发布,越来越Emoji表情被加入到这个标准当中,iOS系统自行扩展OpenType标准,通过Apple Color Emoji.ttf这个字体来讲Emoji表情直接显示出来(OSX下也有这个字体,在/System/Library/Fonts/Apple Color Emoji.ttf),当时国外也有对这个问题进行过讨论:Color bitmapfonts... thanks to Apple?! ,但是,由于新加进来的表情都没有对应的Softbank编码,无法转码成Softbank,并且客户端在打包的时候只放进了400多个Emoji表情,所以在显示的时候,只能转换成".."来显示

后来,随着越来越多表情不能显示,我们这边曾经尝试过直接在客户端使用unicode编码,并尝试过一次对外的灰度,在灰度的过程中,我们发现了一些crash,占的总量还不低,crash的堆栈大概是这样的:

at android.text.SpannableStringInternal.getChars(SpannableStringInternal.java:102)

at android.text.TextUtils.getChars(TextUtils.java:105)

at android.text.Layout.processToSupportEmoji(Layout.java:3747)

at android.text.Layout.supportTabandEmoji(Layout.java:3783)

at android.text.Layout.measureText2(Layout.java:3141)

我们注意到了 processToSupportEmoji 这个方法,明显不是属于Android系统原有的方法,应该是某些rom自行更改出现的问题,google一下,果不其然,在某些MTK的rom中有这样的一段代码,是属于processToSupportEmoji中的:

...

int length = end - start +1

char[] chs = TextUtils.obtain(length)

TextUtils.getChars(text, start, end, chs, 0)

for (int i = start i <endi++) {

char c = chs[end-start]

if (c >= 0xD800 &&c <= 0xDFFF &&i + 1 <length) {

char[] tmp = TextUtils.obtain(2)

TextUtils.getChars(text, i, i+2, tmp, 0)

....

可以看出这段代码对数据越界的保护是错误的,很容易就crash,有兴趣可以看下这篇文章:Android程序自动退但是没有提示任何错误

发生这个crash的大部分都是2.3系统的手机,也有一部分是4.x,sony的一些机器也有,估计是复用了同一份代码。

So,问题的答案到这里就很明显了,将部分表情替换成点点的原因主要是这样的:

1. 大部分新表情都没有对应的unicode编码,而换了unicode编码,TextView/EditText直接显示在一些机器中就会遇到上面的crash

2. 考虑到安装包的大小,目前也没有把太多表情直接打包进去的打算(从目前版本的OSX中提取出来的表情大概有800多个,全部直接打包进去的话,会给安装包增加1~2M的体积)

BTW,Google在4.4之后也自行扩展了OpenType标准,同时也添加了一套自己的小黄人Emoji表情,可以直接在Google输入法中输入


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11579302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存