android - 如何检查我的设备是否能够正确呈现表情符号图像?

标签 android emoji

我在 View 中使用表情符号 unicode。在大多数设备上,图像显示正常,但在我的一个低端设备(android 2.3)上,它们呈现为小方 block 。

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

enter image description here

最佳答案

这是一个迟到的答案,但我最近遇到了类似的问题。我需要过滤 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部分特别hacky,我希望值是0.0对于不可渲染的表情符号,但在一些设备上,我发现该值实际上在 3.0 左右至 6.0对于不可渲染的,和 12.015.0用于渲染。您的结果可能会有所不同,因此您可能需要对其进行测试。我相信字体大小也会对 measureText() 的输出产生影响所以请记住这一点。

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

关于android - 如何检查我的设备是否能够正确呈现表情符号图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261310/

相关文章:

android - 在当前状态下启动 Activity

html - 我如何控制(跨所有设备和浏览器)字符是显示为表情符号版本还是文本版本?

python - 用空格环绕表情符号

android - 制作一个 android 项目的 jar 以在另一个 android 项目中使用?

android.view.InflateException : Binary XML file line #2: Binary XML file line #2: You must supply a layout_width attribute

Android快捷方式位图启动器图标大小

php - 从安卓到网络的表情符号

javascript - 在 Javascript 上使用 Rhino 的 evaluateString() 的 Android StackOverflow 错误

mysql - PHP中如何删除表情符号代码?

android - 如何将Edittext中的文字和笑脸转为字符串?