如何检查我的设备是否能够正确渲染Emoji图像?
我在视图中使用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.0
到6.0
之间,12.0
到15.0
之间。您的结果可能会有所不同,因此您可能想要测试一下。我认为字体大小也会影响measureText()
的输出,因此请记住这一点。
总的来说,我不确定这是不是一个很好的解决方案,但这是迄今为止我想出的最好的解决方案。
相关文章