我在 View 中使用表情符号 unicode。在大多数设备上,图像显示正常,但在我的一个低端设备(android 2.3)上,它们呈现为小方 block 。
我可以检查设备是否支持表情符号吗?这样我就可以发布我的 apk,同时不会在某些设备上显示丑陋的方 block 。
最佳答案
这是一个迟到的答案,但我最近遇到了类似的问题。我需要过滤 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.0
至 15.0
用于渲染。您的结果可能会有所不同,因此您可能需要对其进行测试。我相信字体大小也会对 measureText()
的输出产生影响所以请记住这一点。
总的来说,我不确定这是否是一个很好的解决方案,但这是迄今为止我想出的最好的解决方案。
关于android - 如何检查我的设备是否能够正确呈现表情符号图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261310/