一,对emoji表情的理解java
emoji表情是一种表情符号,在代码中它如今实际上是一组遵循Unicode的编码,即每个表情符号都对应了一个Unicode编码。更进一步说,emoji表情其实是一组Unicode编码与一组表情描述之间的一一对应。注意,这里所说的不是表情图片,而是表情描述。那么图片的实现是由谁来负责的呢?图片是由各个系统或者软件针对统一的表情描述来各自实现的,他们都遵循统一的Unicode编码规范。也就是说Unicode编码其所对应的表情描述是统一的,是全部人都要共同遵照的一套标准或者规范,而具体的表情图片则可能因平台的不一样而产生差别,好比Android和ios。以很是火的“笑哭”表情为例,以下表android
iosios
Android(>=4.4)程序员
Twitter数组
Unicodeapp
Description编码
U+1F602spa
face with tears of joy操作系统
对于描述为”face with tears of joy",Unicode编码为”U+1F602”的表情,ios,android,和twitter分别作了不一样的实现。.net
二,
如何在Android系统中操做系统自带的emoji表情
在android中,咱们能够只用go输入法或者搜狗输入发来输入emoji表情,对于用户这没有任何问题。可是对于程序员来讲如何在程序中输入或者获得一个emoji表情呢?好比咱们想经过textview.setText()方法来输入一个emoji表情。
其实经过emoji表情的通用Unicode编码就能够实现,直接使用Character.toChars()方法将unicode编码转换为一个char数组,再将这个char数组转换成为字符串就能够直接操做了,系统会自动将其解析为表情图片,能够直接显示在textview组件当中,不须要咱们作任何其余的事情。
三,
具体的代码实现
private void setEmojiToTextView(){
int unicodeJoy = 0x1F602;
String emojiString = getEmojiStringByUnicode(unicodeJoy);
myTextView.setText(emojiString);
}
private String getEmojiStringByUnicode(int unicode){
return new String(Character.toChars(unicode));
}