【问题标题】:display built-in emoji keys for inputmethod显示输入法的内置表情符号键
【发布时间】:2015-07-12 07:56:01
【问题描述】:

我正在为 android 构建一个自定义软键盘,并希望添加一个布局以包含类似于默认 android 键盘 (AOSP) 所做的表情符号键。我四处搜索,但似乎大多数人都试图从图像中显示自定义表情符号。我想展示Android自带的内置图标(如下图):

似乎我应该能够使用 Unicode 字符从键盘发送图像,但我的第一次尝试似乎只生成旧版本的表情符号。如何支持手机可以处理的最新表情符号?另外,如何在键盘上显示如上图所示的表情符号?

【问题讨论】:

  • 有人有什么想法吗?

标签: android android-softkeyboard emoji android-input-method emoticons


【解决方案1】:

感谢所有建议。我在自定义键盘中显示表情符号布局的工作如下:

  1. 在 .xml 布局文件中,为每个要添加的表情符号创建如下一行:<Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>

  2. 提交密钥时,使用:getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

【讨论】:

    【解决方案2】:

    表情支持并不像您想象的那样工作。没有所有安卓设备都支持的通用表情符号集,您的设备支持的表情符号可能在不同设备上显示不同。表情符号是在 Android 上通过 2 种方式之一完成的。

    1)Unicode。设备支持的表情符号取决于应用程序使用的字体。您只需像发送普通文本一样发送 unicode,然后通过显示该字符将其显示在键盘上。对于这种方法,您猜测手机将支持哪些方法。这是一个完全的猜测,因为这取决于应用程序使用的字体。

    2) 图像跨度。您将 ImageSpannable 嵌入到您通过 commitText 发送的文本中。这样做的好处是你确定你有一张图片(你需要在你的应用程序中包含这些图片)。缺点是它不能发送到另一台设备、保存,并且可能不适用于所有应用程序(它们可能不显示可跨对象)。

    【讨论】:

      【解决方案3】:

      Emoticons-Keyboard

      1) 代替 emitos ,我将包含资产的 ImageView 替换为包含 Unicode 序列的 TextView。

      在交叉引用支持的 Unicode 序列以及 Visual Unicode 数据库后,我意识到 **u1F601** 是 32 位 Unicode 表示,而 16 位 表示可以设置如下:

      EditText messageInput = (EditText) findViewById(R.id.message_input);
      messageInput.getText().append("\ud83d\ude01");
      

      2) http://android.appstorm.net/how-to/customization/how-to-use-emojis-on-your-android-device/

      【讨论】:

        【解决方案4】:

        转至https://en.m.wikipedia.org/wiki/Emoji,查看您的设备支持哪些带有 unicode 的表情符号。

        您知道显示哪个表情符号取决于您使用的字体,因此要获取最新的表情符号,请使用 NotoColorEmoji.ttf 作为您应用的字体。

        【讨论】:

        • 谢谢。但是,我的手机支持如上图所示的相同图标集。我不知道为什么当我发送相应的 unicode 序列时它会显示较旧的图标。另外,我如何才能在我的自定义键盘上查看显示这些表情符号的视图,如上面的屏幕截图所示?
        • 假设您在键盘中使用文本视图:stackoverflow - set-font-at-runtime-textview
        猜你喜欢
        • 2014-12-08
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        相关资源
        最近更新 更多