【问题标题】:Rendering custom emoji through an IME通过 IME 呈现自定义表情符号
【发布时间】:2016-11-17 17:11:13
【问题描述】:

我正在考虑制作一个包含 721 个神奇宝贝精灵的键盘(为我自己和几个朋友)。但是,首先,我需要找到一种存储这些字符的好方法。我的想法是将这些存储在未使用的 Unicode 字符中,但我需要其中的 721 个。

有没有更好的方法来自定义表情符号而不覆盖现有的?如果不是,我可以使用哪些 721 个字符(最好一起使用,中间没有中断)来存储神奇宝贝?

作为奖励,我如何存储这些神奇宝贝的闪亮版本?

那么,如何使用键盘绘制这些字符呢?

【问题讨论】:

    标签: android unicode ime emoticons


    【解决方案1】:

    编码

    您可能希望将它们存储在私人使用区 (PUA) 块中。 其中有 3 个,我会使用其中一个补充的,因为降低了偶然发现他人私人用途的风险。 不要覆盖现有的。

    渲染

    您需要使用自己的字体并将其嵌入到您的应用程序中。

    您将需要一种方法来告诉文本引擎“嘿,此范围内的字符使用此字体”。所以你需要一些富文本格式(即 HTML),所以使用 WebView。 如果您使用 Spanned 创建的 Html.fromHtml,TextView 也可能有效。但我不确定是否支持指定嵌入字体,需要尝试。

    输入

    您需要一个自定义键盘...可能有一些开源的、数据驱动的键盘。或者在商店中允许您自定义它。或者您可以使用快捷方式将它们添加到字典中,但是您需要知道所有名称(以便您可以键入 p.pikachu)。或者您可以使用字符选择器。

    存储

    此时它们是字符串。您可以存储为任何其他文本、通过电线移动、在磁盘上等。

    【讨论】:

    • 在渲染中,您说“您需要使用自己的字体并将其嵌入到您的应用程序中。”你是什​​么意思?以及如何在 Hangouts、Messenger 等应用中实现这一点?此外,PUA 是在 FFFF 之后(它们是 UTF-16?),这会影响什么吗?对于键盘,我看到了一个使用自己的 SVG 替换笑脸表情符号的键盘。我可以延长这个吗?
    • 抱歉,不是 SVG、PNG,这里是:github.com/chiragjain/Emoticons-Keyboard 我看到它使用跨区 HTML,它是如何工作的?
    • * "使用您自己的字体并将其嵌入到您的应用程序中" => useTypeface.createFromAsset(此处示例:stacktips.com/tutorials/android/…
    • * "在 Hangouts、Messenger 等应用中工作" => 你不能,除非你有一个 root 的设备并破解现有的系统字体
    • * "PUA 在 FFFF 之后" => 有 3 个块,1 个低于 FFFF,2 个高于 (E000..F8FF, F0000..FFFFF, 100000..10FFFF)
    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2016-06-08
    • 2021-08-09
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多