จะตั้งค่าอิโมจิด้วย Unicode ใน textview ได้อย่างไร?


94

สวัสดีฉันต้องการทำสิ่งต่อไปนี้:

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

เพื่อรับสิ่งนี้ในมุมมองข้อความของฉัน:

มีความสุขมาก ๆ 😊

ฉันจะใช้งานได้getEmojiByUnicode(unicode)อย่างไร?

unicodeตัวแปรควรเป็นประเภทใด (สตริงถ่าน int?)

โปรดทราบว่าฉันไม่ต้องการใช้ Drawables!

คำตอบ:


185

พบวิธีแก้ไข:

ใน Unicode ของฉันฉันแทนที่ ' U + ' ด้วย ' 0x '

ตัวอย่าง: แทนที่ ' U + 1F60A ' ด้วย ' 0x1F60A '

วิธีนี้ทำให้ฉันได้ 'int' เช่น

int unicode = 0x1F60A;

ซึ่งสามารถใช้กับ

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

ดังนั้น Textview จะแสดง😊โดยไม่ต้องวาดได้

ลองใช้http://apps.timwhitlock.info/emoji/tables/unicode


3
ทำงานบน 5.1 แต่ใน 4.4.4 ฉันได้รับ? สำหรับสตริงอิโมจิของฉัน
filthy_wizard

21
เป็นไปได้ไหมที่จะทำในไฟล์ strings.xml
Spektakulatius

@ user1232726 ซึ่งจะขึ้นอยู่กับโทรศัพท์ของผู้ใช้รวมถึงอีโมจิที่ใช้
Suragch

ได้โปรดช่วยแปลง "5794d5f7895fa10a8f8e1357" นี้เป็น EMOJI .. @GilbertGiesbert .. ขอบคุณ ...
Ravindra Kushwaha

2
น่าเสียดายที่มันใช้ไม่ได้กับ Unicode 32 บิตเช่น U + 1F1EF U + 1F1F2 ค่านี้อยู่นอกขอบเขตจำนวนเต็ม
Chris - Jr

40

คุณสามารถใช้ Emojis ในทรัพยากรสตริงได้โดยตรงโดยใช้รหัสทศนิยมดังนี้:

😊

ตัวอย่างเช่น:

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

11
นี่คือคำตอบที่ดี หากต้องการค้นหารหัสทศนิยมของอีโมจิคุณสามารถใช้สิ่งต่างๆเช่นquackit.com/character_sets/emoji
Adinia

1
ฉันไม่พบ x ที่จำเป็น
hmac

3
เกิดข้อผิดพลาดขณะสร้าง: การอ้างอิงอักขระ "& #
ดร. aNdRO

@hmac ฉันย้อนกลับคำตอบลบการกล่าวถึงx
Vadim Kotov

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.