テキストビューでユニコードで絵文字を設定する方法は?


93

こんにちは私は次のことをしたいと思います:

??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);

これを私のテキストビューで取得するには:

とても幸せです😊

どのように実装できgetEmojiByUnicode(unicode)ますか?

unicode変数はどの型にする必要がありますか?(文字列、文字、整数?)

ドローアブルは使いたくないので注意してください!

回答:


184

解決策を見つけました:

私のユニコードでは、「U +」を「0x」に置き換えました

例:「U + 1F60A」を「0x1F60A」に置き換える

このように私は「int」のようなものを得ました

int unicode = 0x1F60A;

で使用できるもの

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

したがって、TextviewはDrawableなしでdisplaysを表示します

http://apps.timwhitlock.info/emoji/tables/unicodeでお試しください


3
5.1で動作しますが、4.4.4では動作しますか?私の絵文字列
filthy_wizard

21
strings.xmlファイルでこれを行うことは可能ですか?
Spektakulatius

@ user1232726、これは使用されている絵文字を含むユーザーの電話に依存します。
Suragch 2017年

この「5794d5f7895fa10a8f8e1357」をEMOJIに変換するのを手伝ってくれませんか.. @GilbertGiesbert ..ありがとう...
Ravindra Kushwaha 2017

2
残念ながら、U + 1F1EF U + 1F1F2のような32ビットUnicodeでは動作しません。この値は整数の境界外です。
クリス

39

次のような10進コードを使用して、文字列リソースで絵文字を直接使用できます。

😊

例えば:

<string name="emoji">I am happy &#128522;</>

10
これは良い答えです。絵文字の10進コードを見つけるには、quackit.com
character_sets /

1
必要なxが見つかりません
hmac

3
ビルド中のエラー:文字参照 "&#
Dr. aNdRO 2018年

@hmac私は答えをロールバックし、次の言及を削除しましたx
Vadim Kotov

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.