如何检查我的设备是否能够正确渲染Emoji图像?

2022-09-22 00:00:00 emoji android

我在视图中使用Emoji Unicode。在大多数设备上,图像看起来都不错,但在我的一台低端设备(安卓2.3)上,它们呈现为小方块。

我可以检查设备是否支持表情符号吗?这样我就可以发布我的APK,同时不会在某些设备上显示那些难看的方块。


解决方案

这是一个较晚的答案,但我最近遇到了类似的问题。我需要过滤List<String>,并过滤掉无法在设备上呈现的表情符号(即,如果设备太旧并且不支持呈现它们)。

我最终做的是使用Paint测量文本宽度。

Paint mPaint = new Paint();
private boolean emojiRenderable(String emoji) {
    float width = mPaint.measureText(emoji);
    if (width > 7) return true;
    return false;
}
width > 7部分特别繁琐,我预计不可渲染的emoji的值应该是0.0,但在一些设备上,我发现该值实际上介于3.06.0之间,12.015.0之间。您的结果可能会有所不同,因此您可能想要测试一下。我认为字体大小也会影响measureText()的输出,因此请记住这一点。

总的来说,我不确定这是不是一个很好的解决方案,但这是迄今为止我想出的最好的解决方案。

相关文章