【问题标题】:Display emoji from unicode in Android在 Android 中显示来自 unicode 的表情符号
【发布时间】:2018-02-12 00:40:54
【问题描述】:

我有这个简单的代码可以在按钮的文本中显示红心牌:

int intHearts= 0x2665;
String stringHearts= new String(Character.toChars(intHearts));
btnHearts.setText(stringHearts);

它在模拟器 (Android 7) 中运行良好,显示红色表情符号。相反,当我从华硕 Zenfone 2 (Android 5) 运行应用程序时,我只能看到红心♥的黑色字符。那么如何让我的手机显示红色表情符号呢?

【问题讨论】:

    标签: android unicode emoji display


    【解决方案1】:

    U+2665 早在表情符号引入之前就已添加到 Unicode 中。这就是为什么这个角色有两种呈现模式(文本和表情符号)。默认情况下使用哪种字符表示在某种程度上是特定于应用程序的。由于遗留原因,通常使用文本表示(黑心)。

    您可以通过附加变体选择器字符来手动指定字符表示。 U+FE0E 用于文本呈现。 U+FE0F 用于表情符号展示。

    不幸的是,Android 6.0 之前似乎只支持文本呈现(忽略变体选择器)。从那时起,只有表情符号演示(同样,忽略变体选择器)。

    要解决此问题,您可以使用 EmojiCompat 支持库。

    【讨论】:

      【解决方案2】:

      设置一个 unicode。

      int smileEmoji = 0x1F60A;
      

      您希望它显示的位置。

      getEmojiByUnicode(smileEmoji)
      

      方法。

      public String getEmojiByUnicode(int unicode){
          return new String(Character.toChars(unicode));
      }
      

      【讨论】:

        猜你喜欢
        • 2015-05-09
        • 2016-02-07
        • 2011-03-21
        • 1970-01-01
        • 2018-09-05
        • 2021-11-07
        • 2014-09-28
        • 2014-08-26
        • 2020-06-23
        相关资源
        最近更新 更多