EmojiCompat 主要是为了让 Android 设备,达到最新的 Emoji 符号的显示效果,它可以防止应用中,出现以豆腐块 “☐” 的形式来显示 Emoji,虽然它仅仅只是因为你当前的设备没有这个字体而已。通过 EmojiCompat ,你的设备无需等待 Android 系统更新,就可以获得最新的 Emoji 表情显示效果。
- EmojiCompat 支持库,最低支持到 Android 4.4(Api Level 19) 的系统设备。
- EmojiCompat提供两种字体的支持方式,它们分别是: 可下载的字体配置。 本地捆绑的字体配置。
这两种使用方式,除了引用的库不同之外,最根本的原因在于,可下载的字体的方式,会在首次启动的时候检查本地是否有该字体,没有的话会从网上下载最新的 Emoji 字体;而本地捆绑的方式,会在 App 打包的过程中,植入一个最新的 Emoji 字体文件,然后遇到不能支持的 Emoji,就会从这个字体文件中,加载资源并且渲染。
操作步鄹:
- 添加依赖
"com.android.support:support-emoji-bundled:27.0.2"
- 初始化
EmojiCompat.Config config = new BundledEmojiCompatConfig(getApplicationContext());
EmojiCompat.init(config);
这个代码最好在Application中初始化
public class DemoActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EmojiCompat.Config config = new BundledEmojiCompatConfig(getApplicationContext());
EmojiCompat.init(config);
final TextView textView = findViewById(R.id.volatile_demo);
textView.postDelayed(new Runnable() {
@Override
public void run() {
CharSequence character = EmojiCompat.get().process("笑脸: \uD83D\uDE01");
textView.setText(character);
}
},320);
/****
* 如果不做延迟就会报错,因为初始化需要一定的时间 大概150ms 所以最好提前初始化
*/
}
}
- 具体执行
EmojiCompat.get().process(" \uD83D\uDE01");