emoji表情让我们互联网聊天不在生涩,各种社交工具中都缺少不了emoji表情,但是由于emoji表情没有一个统一的规范,导致我们在聊天的时候可能会收到类似“□”的一个字符。这其实就是因为我们没有正确的解析到emoji的unicode。QQ为了解决这个问题,专门为自己定做了一套自己的emoji表情。而我们在开发中,没有那个时间和能力去做一套完整的emoji表情库,但是幸好android已经为我们考虑到了这一点,所以官方推出了一套可以解析emoji表情的控件。
首先我们来看一下Android官方demo给出的效果图
其实我个人认为如果只看原生的emoji表情,Android的表情比iOS的更加生动。
接下来我们去官方的api中看一下
我们可以看到Android为我们提供了三种控件,分别是按钮,输入框,还有文本。这三种已经可以解决我们开发中遇到的问题。
接下里看一下使用
emoji表情我们可以使用系统自带的,也可以下载一下官方更新的。如果使用系统自带的,那么我们需要
EmojiCompat.Config config = new BundledEmojiCompatConfig(getApplicationContext());
如果我们需要下载一些表情的话,可以使用
final FontRequest fontRequest = new FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
"Noto Color Emoji Compat",
R.array.com_google_android_gms_fonts_certs);
config = new FontRequestEmojiCompatConfig(getApplicationContext(), fontRequest)
.setReplaceAll(true)
.registerInitCallback(new EmojiCompat.InitCallback() {
@Override
public void onInitialized() {
Log.i(TAG, "EmojiCompat initialized");
}
@Override
public void onFailed(@Nullable Throwable throwable) {
Log.e(TAG, "EmojiCompat initialization failed", throwable);
}
});
然后我们就可以将带有emoji表情的文字通过setText()方法添加到控件上显示了,当然在实际开发中,我们可能需要的是去选择emoji表情,然后发送。那么我们可以使用网格布局,将emoji表情加载出来,然后选择,具体的实现,等我有空的时候会继续更新。