我可以检查一个Unicode代码点是否可以在Android下显示?

我可以检查一个Unicode代码点是否可以在Android下显示?

问题描述:

我目前的项目使用了许多字体中缺少的符号。到目前为止,我已经发现一些iOS渲染器作为一个盒子,所以我预计迟早会发现一个Android无法渲染的东西,尽管到目前为止它在这方面比iOS做得更好。我可以检查一个Unicode代码点是否可以在Android下显示?

有没有一种方法来编程检查给定的Unicode码点将在屏幕上正确显示,而不是一个空方块等?

如果我可以检测到无法呈现的符号,我可以为它实现一个解决方法,而不是显示一个丑陋的框。

+0

字体中正在使用哪些符号和丢失了哪些符号? – Siyamed

+0

到目前为止,我还没有在Android上找到一个失踪的,但我发现新的亚美尼亚货币符号֏在iOS上失踪,所以我假设这不是一次性的。 – hippietrail

+0

我的合作开发者发现,我无法测试的早期版本的Android没有Unicode国旗Emoijis。 – hippietrail

对于一般的Unicode字符,您可以使用PaintCompat.hasGlyph

您应该仍然使用ianhanniballake的答案中提到的EmojiCompat,以便能够正确呈现emojis。

使用Emoji Compat,所有当前的Unicode字符都支持回API 19.它可以与Downloadable Fonts一起使用,确保随着额外的Unicode字符变得标准化,您的应用程序会自动支持它们。

可以确认,如果一个特定的字符由表情COMPAT与hasEmojiGlyph()支持:

EmojiCompat.get().hasEmojiGlyph(charSequence); 

注意:您必须调用此之前有initialized Emoji Compat

EmojiCompat DevByte video显示了一组最小的工作步骤。

+0

我关心的角色不是表情符号。这仍然适用? – hippietrail

+1

我在'hasEmojiGlyph()'方法中添加了一个注释,它应该告诉你到底是什么将渲染为盒子(如果它返回false)和丰富的字符。 – ianhanniballake

+1

对于一般的Unicode字符,您可以使用PaintCompat.hasGlyph。 https://developer.android.com/reference/android/support/v4/graphics/PaintCompat.html – Siyamed